Compare commits

..

18 commits

59 changed files with 289 additions and 4 deletions

View file

@ -2,13 +2,15 @@
## Screenshots
<img src="assets/creative-inventory.png" height=300 /> <img src="assets/survival-inventory.png" height=300 />
<img src="assets/creative-inventory.png" height=300 /> <img src="assets/survival-inventory.png" height=300 /> \
<img src="assets/hotbar.png" width=680 /> \
<img src="assets/beacon-portal-armor.png" width=680 />
## Download
This pack targets Minecraft **1.19.4**, but since it doesn't use any of Minecraft's advanced features it should work with pretty much any other version as well. (If it doesn't, let me know!)
This pack targets Minecraft **1.19.4**, but it should work fine on any version from 1.17 above. Older versions might lack some features but should be mostly fine as well!
You can grab the latest **ponk.zip** [from the **Releases** tab](releases/latest)!
You can grab the latest **ponk.zip** [from the **Releases** tab](https://git.amogus.cloud/Lea/ponk/releases/latest)!
If you plan on using this on a server, also set `resource-pack-sha1` in your `server.properties` to the content of `ponk.zip.sha1`.
## Contributing
@ -32,6 +34,8 @@ There is a script that simplifies the development workflow. Simply pass the path
It will copy the `pack` directory to it, and update it every time something changes. After making a change, simply hit **F3+T** to tell Minecraft to reload! \
(You will need to enable the pack first, of course.)
> You might have to install `inotify-tools` or a similar package depending on your distribution
### Extracting the original textures from Minecraft
Since all textures are variants of the game's original textures, you most likely need those first.

Binary file not shown.

After

(image error) Size: 682 KiB

BIN
assets/hotbar.png Normal file

Binary file not shown.

After

(image error) Size: 13 KiB

View file

@ -0,0 +1,42 @@
#version 150
#moj_import <fog.glsl>
uniform sampler2D Sampler0;
uniform mat4 ProjMat;
uniform vec4 ColorModulator;
uniform float FogStart;
uniform float FogEnd;
uniform vec4 FogColor;
in vec4 vertexColor;
in vec2 texCoord0;
out vec4 fragColor;
vec4 pink = vec4(0.957, 0.722, 0.859, 1);
// This file slightly alters the colour of the beacon beam
void main() {
vec4 color = texture(Sampler0, texCoord0);
color *= vertexColor * ColorModulator;
float fragmentDistance = -ProjMat[3].z / ((gl_FragCoord.z) * -2.0 + 1.0 - ProjMat[2].z);
float nuts = 0.0;
/* this is an excuse for me to play around with shaders but i guess it also looks kinda cool */
if (fragmentDistance > 10) {
nuts = 1.0;
} else {
nuts = fragmentDistance / 10;
}
nuts /= 3;
nuts += 0.25;
color.rgb = mix(color.rgb, pink.rgb, nuts);
fragColor = linear_fog(color, fragmentDistance, FogStart, FogEnd, FogColor);
}

View file

@ -0,0 +1,74 @@
#version 150
#moj_import <matrix.glsl>
uniform sampler2D Sampler0;
uniform sampler2D Sampler1;
uniform float GameTime;
uniform int EndPortalLayers;
in vec4 texProj0;
// removed the `const` keyword here because we're going to modify these values in main()
vec3[] COLORS = vec3[](
vec3(0.022087, 0.098399, 0.110818), // weird foreground layer?
vec3(0.011892, 0.095924, 0.089485), // stars in background
vec3(0.027636, 0.101689, 0.100326), // also stars
vec3(0.046564, 0.109883, 0.114838), // more stars
vec3(0.064901, 0.117696, 0.097189), // the stars are getting bigger
vec3(0.063761, 0.086895, 0.123646), // take a guess
vec3(0.084817, 0.111994, 0.166380), // bigger stars
vec3(0.097489, 0.154120, 0.091064), // would almost consider them foreground objects now
vec3(0.106152, 0.131144, 0.195191), // .
vec3(0.097721, 0.110188, 0.187229), // .
vec3(0.133516, 0.138278, 0.148582), // !
vec3(0.070006, 0.243332, 0.235792), // !!
vec3(0.196766, 0.142899, 0.214696), // !!!
vec3(0.047281, 0.315338, 0.321970), // the turquoise thingies going from left to right
vec3(0.204675, 0.390010, 0.302066), // green things going from top to bottom
vec3(0.080955, 0.314821, 0.661491) // blue things going from right to left
);
const vec3 PINK = vec3(0.898, 0.541, 0.749);
const mat4 SCALE_TRANSLATE = mat4(
0.5, 0.0, 0.0, 0.25,
0.0, 0.5, 0.0, 0.25,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat4 end_portal_layer(float layer) {
mat4 translate = mat4(
1.0, 0.0, 0.0, 17.0 / layer,
0.0, 1.0, 0.0, (2.0 + layer / 1.5) * (GameTime * 1.5),
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat2 rotate = mat2_rotate_z(radians((layer * layer * 4321.0 + layer * 9.0) * 2.0));
mat2 scale = mat2((4.5 - layer / 4.0) * 2.0);
return mat4(scale * rotate) * translate * SCALE_TRANSLATE;
}
out vec4 fragColor;
void main() {
// start at 1 because we don't want to change the foreground noise here
for (int i = 1; i < 16; i++) {
float intensity = float(i) / 16.0;
COLORS[i] = mix(COLORS[i], PINK, intensity * 0.7);
}
// slightly shift foreground to pink as well :3
COLORS[0] = mix(COLORS[0], PINK, 0.15);
vec3 color = textureProj(Sampler0, texProj0).rgb * COLORS[0];
for (int i = 0; i < EndPortalLayers; i++) {
color += textureProj(Sampler1, texProj0 * end_portal_layer(float(i + 1))).rgb * COLORS[i];
}
fragColor = vec4(color, 1.0);
}

View file

@ -0,0 +1,50 @@
#version 150
#moj_import <fog.glsl>
#moj_import <hue_shift.glsl>
uniform sampler2D Sampler0;
uniform vec4 ColorModulator;
uniform float FogStart;
uniform float FogEnd;
uniform vec4 FogColor;
in float vertexDistance;
in vec4 vertexColor;
in vec2 texCoord0;
in vec2 texCoord1;
in vec4 normal;
in vec4 tintColour;
out vec4 fragColor;
/**
* This changes the colour of XP orbs.
*
* I stole some of the code from this funky individual (planet minecraft, point and laugh):
* https://www.planetminecraft.com/texture-pack/rainbow-xp-vanilla/
*
* Simply hue shifting the XP colours worked sufficiently well for me, but if I wanted
* better control over the resulting colours I'd have to put more effort into this.
* The resulting colour pulses between purple and dark pink.
*/
void main() {
vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator;
if (color.a < 0.1) {
discard;
}
// detect xp orbs using their tint colour
vec4 col255 = tintColour * 255;
if(
0 <= col255.r && col255.r <= 255 &&
253 <= col255.g && col255.g <= 255 &&
0 <= col255.b && col255.b <= 51
) {
color = vec4(hueShift(color.rgb, 160), color.a);
}
fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor);
}

View file

@ -0,0 +1,43 @@
#version 150
#moj_import <light.glsl>
#moj_import <fog.glsl>
in vec3 Position;
in vec4 Color;
in vec2 UV0;
in vec2 UV1;
in ivec2 UV2;
in vec3 Normal;
uniform sampler2D Sampler2;
uniform mat4 ModelViewMat;
uniform mat4 ProjMat;
uniform mat3 IViewRotMat;
uniform int FogShape;
uniform vec3 Light0_Direction;
uniform vec3 Light1_Direction;
out float vertexDistance;
out vec4 vertexColor;
out vec2 texCoord0;
out vec2 texCoord1;
out vec2 texCoord2;
out vec4 normal;
out vec4 tintColour;
// This file is modified to pass `tintColour` as output.
void main() {
gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0);
vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape);
vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color) * texelFetch(Sampler2, UV2 / 16, 0);
tintColour = Color;
texCoord0 = UV0;
texCoord1 = UV1;
texCoord2 = UV2;
normal = ProjMat * ModelViewMat * vec4(Normal, 0.0);
}

View file

@ -0,0 +1,40 @@
#version 150
#moj_import <fog.glsl>
uniform sampler2D Sampler0;
uniform vec4 ColorModulator;
uniform float FogStart;
uniform float FogEnd;
uniform vec4 FogColor;
in float vertexDistance;
in vec4 vertexColor;
in vec2 texCoord0;
out vec4 fragColor;
void main() {
vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator;
if (color.a < 0.1) {
discard;
}
/**
* I hate Planet Minecraft but this is actually pretty useful
* https://www.planetminecraft.com/blog/changing-hardcoded-colours-1-18-1-17-core-shaders/
*/
/* XP text */
if(color.r <= 126.50/255.0 && color.r > 126.49/255.0 && color.g == 252/255.0 && color.b <= 31.63/255.0 && color.b > 31.62/255.0){
color = vec4(0.9569, 0.7216, 0.8588, color.a);
}
/* XP text shadow */
if(color.r <= 31.7/255.0 && color.r > 31.6/255.0 && color.g <= 62.3/255.0 && color.g > 62.25/255.0 && color.b <= 8.0/255.0 && color.b > 7.9/255.0){
color = vec4(0.898, 0.5412, 0.749, color.a);
}
fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor);
}

View file

@ -0,0 +1,28 @@
#version 150
// https://gist.github.com/mairod/a75e7b44f68110e1576d77419d608786
vec3 hueShift( vec3 color, float hueAdjust ) {
const vec3 kRGBToYPrime = vec3 (0.299, 0.587, 0.114);
const vec3 kRGBToI = vec3 (0.596, -0.275, -0.321);
const vec3 kRGBToQ = vec3 (0.212, -0.523, 0.311);
const vec3 kYIQToR = vec3 (1.0, 0.956, 0.621);
const vec3 kYIQToG = vec3 (1.0, -0.272, -0.647);
const vec3 kYIQToB = vec3 (1.0, -1.107, 1.704);
float YPrime = dot (color, kRGBToYPrime);
float I = dot (color, kRGBToI);
float Q = dot (color, kRGBToQ);
float hue = atan (Q, I);
float chroma = sqrt (I * I + Q * Q);
hue += hueAdjust;
Q = chroma * sin (hue);
I = chroma * cos (hue);
vec3 yIQ = vec3 (YPrime, I, Q);
return vec3( dot (yIQ, kYIQToR), dot (yIQ, kYIQToG), dot (yIQ, kYIQToB) );
}

Binary file not shown.

After

(image error) Size: 307 B

Binary file not shown.

After

(image error) Size: 709 B

Binary file not shown.

After

(image error) Size: 421 B

Binary file not shown.

After

(image error) Size: 660 B

Binary file not shown.

After

(image error) Size: 424 B

Binary file not shown.

After

(image error) Size: 354 B

Binary file not shown.

After

(image error) Size: 1.1 KiB

Binary file not shown.

After

(image error) Size: 1.1 KiB

Binary file not shown.

After

(image error) Size: 1.4 KiB

Binary file not shown.

After

(image error) Size: 1.4 KiB

Binary file not shown.

After

(image error) Size: 27 KiB

Binary file not shown.

After

(image error) Size: 10 KiB

Binary file not shown.

After

(image error) Size: 4.5 KiB

Binary file not shown.

Before

(image error) Size: 15 KiB

Binary file not shown.

After

(image error) Size: 371 B

Binary file not shown.

After

(image error) Size: 220 B

Binary file not shown.

After

(image error) Size: 243 B

Binary file not shown.

After

(image error) Size: 346 B

Binary file not shown.

After

(image error) Size: 256 B

Binary file not shown.

After

(image error) Size: 197 B

Binary file not shown.

After

(image error) Size: 296 B

Binary file not shown.

After

(image error) Size: 251 B

Binary file not shown.

After

(image error) Size: 222 B

Binary file not shown.

After

(image error) Size: 201 B

Binary file not shown.

After

(image error) Size: 334 B

Binary file not shown.

After

(image error) Size: 134 B

Binary file not shown.

After

(image error) Size: 142 B

Binary file not shown.

After

(image error) Size: 136 B

Binary file not shown.

After

(image error) Size: 127 B

Binary file not shown.

After

(image error) Size: 240 B

Binary file not shown.

After

(image error) Size: 133 B

Binary file not shown.

After

(image error) Size: 122 B

Binary file not shown.

After

(image error) Size: 153 B

Binary file not shown.

After

(image error) Size: 143 B

Binary file not shown.

After

(image error) Size: 124 B

Binary file not shown.

After

(image error) Size: 169 B

Binary file not shown.

After

(image error) Size: 155 B

Binary file not shown.

After

(image error) Size: 145 B

Binary file not shown.

After

(image error) Size: 182 B

Binary file not shown.

After

(image error) Size: 152 B

Binary file not shown.

After

(image error) Size: 120 B

Binary file not shown.

After

(image error) Size: 170 B

Binary file not shown.

After

(image error) Size: 122 B

Binary file not shown.

After

(image error) Size: 139 B

Binary file not shown.

After

(image error) Size: 421 B

Binary file not shown.

After

(image error) Size: 1.1 KiB

Binary file not shown.

After

(image error) Size: 592 B

View file

@ -1,6 +1,9 @@
{
"pack": {
"pack_format": 13,
"description": ":3"
"description": {
"text": "~w~",
"color": "#FDE4F2"
}
}
}

BIN
pack/pack.png Normal file

Binary file not shown.

After

(image error) Size: 106 KiB

View file

@ -25,6 +25,7 @@ function block_for_change {
function build {
echo "Copying pack to $TARGET_PATH"
rm -rf "$TARGET_PATH"
sleep 1
cp -r "./pack" "$TARGET_PATH"
echo "Reload the game with F3+T now"
}