Compare commits
18 commits
Author | SHA1 | Date | |
---|---|---|---|
Lea | ac2046ec1c | ||
BlackDemonFire | c2796dd977 | ||
Lea | 7c63a7566e | ||
Lea | d42f72771e | ||
Lea | 33c45de449 | ||
Lea | 6715f690ba | ||
Lea | 05a4a49de6 | ||
Lea | 336ca81adf | ||
Lea | 8d6acdfef0 | ||
Lea | a62b7071f0 | ||
Lea | cb6c0f2a88 | ||
Lea | 0b93f6681c | ||
Lea | e21d11b987 | ||
Lea | f7817dd21d | ||
Lea | b8a8aa123b | ||
Lea | 8488c47061 | ||
Lea | 16de822cb2 | ||
Lea | 31705f520a |
10
README.md
|
@ -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.
|
||||
|
|
BIN
assets/beacon-portal-armor.png
Normal file
After Width: | Height: | Size: 682 KiB |
BIN
assets/hotbar.png
Normal file
After Width: | Height: | Size: 13 KiB |
|
@ -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);
|
||||
}
|
74
pack/assets/minecraft/shaders/core/rendertype_end_portal.fsh
Normal 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);
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
40
pack/assets/minecraft/shaders/core/rendertype_text.fsh
Normal 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);
|
||||
}
|
28
pack/assets/minecraft/shaders/include/hue_shift.glsl
Normal 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) );
|
||||
}
|
BIN
pack/assets/minecraft/textures/block/beacon.png
Normal file
After Width: | Height: | Size: 307 B |
BIN
pack/assets/minecraft/textures/block/deepslate_diamond_ore.png
Normal file
After Width: | Height: | Size: 709 B |
BIN
pack/assets/minecraft/textures/block/diamond_block.png
Normal file
After Width: | Height: | Size: 421 B |
BIN
pack/assets/minecraft/textures/block/diamond_ore.png
Normal file
After Width: | Height: | Size: 660 B |
BIN
pack/assets/minecraft/textures/block/enchanting_table_side.png
Normal file
After Width: | Height: | Size: 424 B |
BIN
pack/assets/minecraft/textures/block/enchanting_table_top.png
Normal file
After Width: | Height: | Size: 354 B |
BIN
pack/assets/minecraft/textures/entity/bee/bee.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
pack/assets/minecraft/textures/entity/bee/bee_angry.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
pack/assets/minecraft/textures/entity/bee/bee_angry_nectar.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
pack/assets/minecraft/textures/entity/bee/bee_nectar.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
pack/assets/minecraft/textures/entity/enchanting_table_book.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
pack/assets/minecraft/textures/gui/icons.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
pack/assets/minecraft/textures/gui/recipe_book.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 15 KiB |
BIN
pack/assets/minecraft/textures/item/diamond.png
Normal file
After Width: | Height: | Size: 371 B |
BIN
pack/assets/minecraft/textures/item/diamond_axe.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
pack/assets/minecraft/textures/item/diamond_boots.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
pack/assets/minecraft/textures/item/diamond_chestplate.png
Normal file
After Width: | Height: | Size: 346 B |
BIN
pack/assets/minecraft/textures/item/diamond_helmet.png
Normal file
After Width: | Height: | Size: 256 B |
BIN
pack/assets/minecraft/textures/item/diamond_hoe.png
Normal file
After Width: | Height: | Size: 197 B |
BIN
pack/assets/minecraft/textures/item/diamond_horse_armor.png
Normal file
After Width: | Height: | Size: 296 B |
BIN
pack/assets/minecraft/textures/item/diamond_leggings.png
Normal file
After Width: | Height: | Size: 251 B |
BIN
pack/assets/minecraft/textures/item/diamond_pickaxe.png
Normal file
After Width: | Height: | Size: 222 B |
BIN
pack/assets/minecraft/textures/item/diamond_shovel.png
Normal file
After Width: | Height: | Size: 201 B |
BIN
pack/assets/minecraft/textures/item/diamond_sword.png
Normal file
After Width: | Height: | Size: 334 B |
BIN
pack/assets/minecraft/textures/item/empty_armor_slot_boots.png
Normal file
After Width: | Height: | Size: 134 B |
After Width: | Height: | Size: 142 B |
BIN
pack/assets/minecraft/textures/item/empty_armor_slot_helmet.png
Normal file
After Width: | Height: | Size: 136 B |
After Width: | Height: | Size: 127 B |
BIN
pack/assets/minecraft/textures/item/empty_armor_slot_shield.png
Normal file
After Width: | Height: | Size: 240 B |
After Width: | Height: | Size: 133 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_axe.png
Normal file
After Width: | Height: | Size: 122 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_diamond.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_emerald.png
Normal file
After Width: | Height: | Size: 143 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_hoe.png
Normal file
After Width: | Height: | Size: 124 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_ingot.png
Normal file
After Width: | Height: | Size: 169 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_lapis_lazuli.png
Normal file
After Width: | Height: | Size: 155 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_pickaxe.png
Normal file
After Width: | Height: | Size: 145 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_quartz.png
Normal file
After Width: | Height: | Size: 182 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_redstone_dust.png
Normal file
After Width: | Height: | Size: 152 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_shovel.png
Normal file
After Width: | Height: | Size: 120 B |
After Width: | Height: | Size: 170 B |
After Width: | Height: | Size: 122 B |
BIN
pack/assets/minecraft/textures/item/empty_slot_sword.png
Normal file
After Width: | Height: | Size: 139 B |
BIN
pack/assets/minecraft/textures/item/totem_of_undying.png
Normal file
After Width: | Height: | Size: 421 B |
BIN
pack/assets/minecraft/textures/models/armor/diamond_layer_1.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
pack/assets/minecraft/textures/models/armor/diamond_layer_2.png
Normal file
After Width: | Height: | Size: 592 B |
|
@ -1,6 +1,9 @@
|
|||
{
|
||||
"pack": {
|
||||
"pack_format": 13,
|
||||
"description": ":3"
|
||||
"description": {
|
||||
"text": "~w~",
|
||||
"color": "#FDE4F2"
|
||||
}
|
||||
}
|
||||
}
|
BIN
pack/pack.png
Normal file
After Width: | Height: | Size: 106 KiB |
|
@ -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"
|
||||
}
|
||||
|
|