Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ repositories {
dependencies {
//runtimeOnly "vazkii.patchouli:Patchouli:${patchouli_version}"

compileOnly "curse.maven:ShoulderSurfing-243190:6496699"
compileOnly "curse.maven:BetterThirdPerson-435044:5965876"
compileOnly "curse.maven:ShoulderSurfing-243190:6993816"
compileOnly "curse.maven:BetterThirdPerson-435044:6455836"
}

var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
Expand Down
10 changes: 5 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
org.gradle.debug=false
parchment_minecraft_version=1.21.4
parchment_mappings_version=2025.03.23
minecraft_version=1.21.4
minecraft_version_range=[1.21.4,1.22)
neo_version=21.4.135
parchment_minecraft_version=1.21.8
parchment_mappings_version=2025.09.14
minecraft_version=1.21.8
minecraft_version_range=[1.21.6,1.21.9)
neo_version=21.8.52
neo_version_range=[21.0.0,)
loader_version_range=[4,)

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/alrex/parcool/ParCool.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Mod(ParCool.MOD_ID)
public class ParCool {
public static final String MOD_ID = "parcool";

public static final Logger LOGGER = LogManager.getLogger();
public static final Logger LOGGER = LoggerFactory.getLogger(ParCool.class);

public ParCool(ModContainer container) {
IEventBus eventBus = ModLoadingContext.get().getActiveContainer().getEventBus();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ public void render(@Nonnull GuiGraphics graphics, int mouseX, int mouseY, float
graphics.fill(3, 3, topBarHeight - 4, topBarHeight - 4, 0xFFEE0000);
graphics.drawCenteredString(font, "!", topBarHeight / 2, (topBarHeight - font.lineHeight) / 2 + 1, 0xEEEEEE);
if (2 <= mouseX && mouseX < topBarHeight - 3 && 1 <= mouseY && mouseY < topBarHeight - 3) {
graphics.renderComponentTooltip(
graphics.setTooltipForNextFrame(
font,
Collections.singletonList(Permission_Not_Received),
Permission_Not_Received,
mouseX, mouseY);
}
titleOffset = topBarHeight;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import net.minecraft.client.gui.components.Checkbox;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.network.chat.Component;
import net.neoforged.neoforge.client.network.ClientPacketDistributor;
import net.neoforged.neoforge.common.ModConfigSpec;
import net.neoforged.neoforge.network.PacketDistributor;

Expand Down Expand Up @@ -84,7 +85,7 @@ public void renderContents(GuiGraphics graphics, int mouseX, int mouseY, float p
if ((topOffset < mouseY && mouseY < topOffset + headerHeight)
&& (columnCenter - permissionColumnWidth / 2 < mouseX && mouseX < columnCenter + permissionColumnWidth / 2)
) {
graphics.renderComponentTooltip(font, Collections.singletonList(Header_Limitation_Text), mouseX, mouseY);
graphics.setTooltipForNextFrame(font, Header_Limitation_Text, mouseX, mouseY);
}
}
}
Expand All @@ -107,7 +108,7 @@ protected void save() {
if (player == null) return;
Parkourability parkourability = Parkourability.get(player);
parkourability.getActionInfo().setClientSetting(ClientSetting.readFromLocalConfig());
PacketDistributor.sendToServer(new ClientInformationPayload(player.getUUID(), true, parkourability.getClientInfo()));
ClientPacketDistributor.sendToServer(new ClientInformationPayload(player.getUUID(), true, parkourability.getClientInfo()));
}

private static class ActionConfigSet {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import net.minecraft.client.gui.components.Checkbox;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.network.chat.Component;
import net.neoforged.neoforge.client.network.ClientPacketDistributor;
import net.neoforged.neoforge.network.PacketDistributor;

import java.util.Collections;
Expand Down Expand Up @@ -55,9 +56,9 @@ protected void renderContents(GuiGraphics graphics, int mouseX, int mouseY, floa
graphics.fill(offsetX, button.getY() + button.getHeight(), width - offsetX, button.getY() + button.getHeight() + 1, color.getSubSeparator());
String comment = booleans[i + topIndex].Comment;
if (comment != null && button.getX() < mouseX && mouseX < button.getX() + contentWidth && button.getY() < mouseY && mouseY < button.getY() + 20) {
graphics.renderComponentTooltip(
graphics.setTooltipForNextFrame(
font,
Collections.singletonList(Component.literal(comment)),
Component.literal(comment),
mouseX, mouseY);
}
}
Expand Down Expand Up @@ -93,6 +94,6 @@ protected void save() {
if (player == null) return;
Parkourability parkourability = Parkourability.get(player);
parkourability.getActionInfo().setClientSetting(ClientSetting.readFromLocalConfig());
PacketDistributor.sendToServer(new ClientInformationPayload(player.getUUID(), true, parkourability.getClientInfo()));
ClientPacketDistributor.sendToServer(new ClientInformationPayload(player.getUUID(), true, parkourability.getClientInfo()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.network.chat.Component;
import net.neoforged.neoforge.client.network.ClientPacketDistributor;
import net.neoforged.neoforge.common.ModConfigSpec;
import net.neoforged.neoforge.network.PacketDistributor;

Expand Down Expand Up @@ -106,7 +107,7 @@ protected void save() {
Parkourability parkourability = Parkourability.get(player);
parkourability.getActionInfo().setClientSetting(ClientSetting.readFromLocalConfig());
parkourability.getActionInfo().updateStaminaType(LocalStamina.get(player), player);
PacketDistributor.sendToServer(new ClientInformationPayload(player.getUUID(), true, parkourability.getClientInfo()));
ClientPacketDistributor.sendToServer(new ClientInformationPayload(player.getUUID(), true, parkourability.getClientInfo()));
}

private static class EnumConfigSet<T extends Enum<T>> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.RenderPipelines;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.neoforge.client.event.ClientTickEvent;
Expand Down Expand Up @@ -69,7 +70,7 @@ public void onTick(ClientTickEvent.Post event, LocalPlayer player) {
var stamina = player.getData(Attachments.STAMINA);
int newValue = stamina.value();
changingSign = (int) Math.signum(newValue - oldValue);
final long gameTime = player.getCommandSenderWorld().getGameTime();
final long gameTime = player.level().getGameTime();
if (changingSign != lastChangingSign) {
lastChangingSign = changingSign;
changingTimeTick = 0;
Expand Down Expand Up @@ -127,7 +128,6 @@ public void render(GuiGraphics graphics, Parkourability parkourability, Readonly
staminaScale *= 10f;
float statusScale = showStatus ? MathUtil.lerp(oldStatusValue, statusValue, partialTick) * 10f : 0f;

RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
final int width = graphics.guiWidth();
final int height = graphics.guiHeight();
int baseX = width / 2 + 91 + ParCoolConfig.Client.Integers.HorizontalOffsetOfLightStaminaHUD.get();
Expand Down Expand Up @@ -175,7 +175,7 @@ public void render(GuiGraphics graphics, Parkourability parkourability, Readonly
offsetY = randomOffset;
}

graphics.blitSprite(RenderType::guiTextured, type.getTexture(size), 9, 9, 0, 0, x, baseY + offsetY, 9, 9);
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, type.getTexture(size), 9, 9, 0, 0, x, baseY + offsetY, 9, 9);
}
Minecraft.getInstance().gui.rightHeight += 10;
}
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/com/alrex/parcool/client/hud/impl/StaminaHUD.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.RenderPipelines;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Tuple;
Expand Down Expand Up @@ -88,14 +89,13 @@ public void render(GuiGraphics graphics, Parkourability parkourability, Readonly
if (staminaScale < 0) staminaScale = 0;
if (staminaScale > 1) staminaScale = 1;

RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
graphics.blitSprite(RenderType::guiTextured, STAMINA_EMPTY, 93, 17, 0, 0, pos.getA(), pos.getB(), 93, 17);
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, STAMINA_EMPTY, 93, 17, 0, 0, pos.getA(), pos.getB(), 93, 17);
if (!stamina.isExhausted()) {
graphics.blitSprite(RenderType::guiTextured, STAMINA_EMPTY_CHARGE, 93, 17, 0, 0, pos.getA(), pos.getB(), (int) Math.ceil(92 * statusScale), 17);
graphics.blitSprite(RenderType::guiTextured, STAMINA_CHARGING, 93, 17, 0, 0, pos.getA(), pos.getB(), Math.round(16 + 69 * shadowScale) + 1, 12);
graphics.blitSprite(RenderType::guiTextured, STAMINA_FULL[renderGageType], 93, 17, 0, 0, pos.getA(), pos.getB(), Math.round(16 + 69 * staminaScale) + 1, 12);
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, STAMINA_EMPTY_CHARGE, 93, 17, 0, 0, pos.getA(), pos.getB(), (int) Math.ceil(92 * statusScale), 17);
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, STAMINA_CHARGING, 93, 17, 0, 0, pos.getA(), pos.getB(), Math.round(16 + 69 * shadowScale) + 1, 12);
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, STAMINA_FULL[renderGageType], 93, 17, 0, 0, pos.getA(), pos.getB(), Math.round(16 + 69 * staminaScale) + 1, 12);
} else {
graphics.blitSprite(RenderType::guiTextured, STAMINA_DEPLETED, 93, 17, 0, 0, pos.getA(), pos.getB(), Math.round(16 + 69 * staminaScale) + 1, 17);
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, STAMINA_DEPLETED, 93, 17, 0, 0, pos.getA(), pos.getB(), Math.round(16 + 69 * staminaScale) + 1, 17);
}
shadowScale = staminaScale - (staminaScale - shadowScale) / 1.1f;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.LayeredDraw;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.client.gui.GuiLayer;
import net.neoforged.neoforge.common.NeoForge;

import javax.annotation.Nonnull;

@OnlyIn(Dist.CLIENT)
public class StaminaHUDController implements LayeredDraw.Layer {
public class StaminaHUDController implements GuiLayer {
public static ResourceLocation ID = ResourceLocation.fromNamespaceAndPath(ParCool.MOD_ID, "hud.stamina");
LightStaminaHUD lightStaminaHUD;
StaminaHUD staminaHUD;
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/com/alrex/parcool/client/input/KeyBindings.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
@OnlyIn(Dist.CLIENT)
public class KeyBindings {
private static final Minecraft mc = Minecraft.getInstance();
private static final Options settings = mc.options;
private static final KeyMapping keyBindEnable = new KeyMapping("key.parcool.Enable", KeyConflictContext.UNIVERSAL, KeyModifier.CONTROL, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_P, "key.categories.parcool");
private static final KeyMapping keyBindCrawl = new KeyMapping("key.parcool.Crawl", GLFW.GLFW_KEY_C, "key.categories.parcool");
private static final KeyMapping keyBindGrabWall = new KeyMapping("key.parcool.ClingToCliff", InputConstants.Type.MOUSE, GLFW.GLFW_MOUSE_BUTTON_RIGHT, "key.categories.parcool");
Expand All @@ -37,7 +36,7 @@ public class KeyBindings {
private static final Vec3 forwardVector = new Vec3(0, 0, 1);

public static KeyMapping getKeySprint() {
return settings.keySprint;
return mc.options.keySprint;
}

public static Boolean isKeyJumpDown() {
Expand All @@ -47,7 +46,7 @@ public static Boolean isKeyJumpDown() {
}

public static KeyMapping getKeySneak() {
return settings.keyShift;
return mc.options.keyShift;
}

public static Vec3 getCurrentMoveVector() {
Expand All @@ -70,8 +69,8 @@ public static Boolean isAnyMovingKeyDown() {
|| mc.player.input.keyPresses.right()
|| mc.player.input.keyPresses.backward()
|| mc.player.input.keyPresses.left()
|| mc.player.input.forwardImpulse != 0
|| mc.player.input.leftImpulse != 0);
|| mc.player.input.getMoveVector().x != 0
|| mc.player.input.getMoveVector().y != 0);
}

public static Boolean isLeftAndRightDown() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.alrex.parcool.client.renderer;

import com.alrex.parcool.ParCool;
import com.mojang.blaze3d.pipeline.RenderPipeline;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.VertexFormat;
import net.minecraft.resources.ResourceLocation;

public class RenderPipelines {
private static final RenderPipeline.Snippet ZIPLINE_SNIPPET = RenderPipeline.builder(net.minecraft.client.renderer.RenderPipelines.MATRICES_FOG_SNIPPET)
.withVertexShader("core/rendertype_leash")
.withFragmentShader("core/rendertype_leash")
.withSampler("Sampler2")
.withVertexFormat(DefaultVertexFormat.POSITION_COLOR_LIGHTMAP, VertexFormat.Mode.QUADS)
.buildSnippet();

public static final RenderPipeline ZIPLINE_3D = RenderPipeline.builder(ZIPLINE_SNIPPET)
.withLocation(ResourceLocation.fromNamespaceAndPath(ParCool.MOD_ID, "zipline3d"))
.withCull(true)
.build();
public static final RenderPipeline ZIPLINE_2D = RenderPipeline.builder(ZIPLINE_SNIPPET)
.withLocation(ResourceLocation.fromNamespaceAndPath(ParCool.MOD_ID, "zipline2d"))
.withCull(false)
.build();
}
14 changes: 4 additions & 10 deletions src/main/java/com/alrex/parcool/client/renderer/RenderTypes.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,19 @@ public class RenderTypes {
static {
ZIPLINE_2D = RenderType.create(
"zipline2d",
DefaultVertexFormat.POSITION_COLOR_LIGHTMAP,
VertexFormat.Mode.QUADS, 256,
false, false,
256,
false, false, RenderPipelines.ZIPLINE_2D,
RenderType.CompositeState.builder()
.setShaderState(RenderStateShard.RENDERTYPE_LEASH_SHADER)
.setTextureState(RenderStateShard.NO_TEXTURE)
.setCullState(RenderStateShard.NO_CULL)
.setLightmapState(RenderStateShard.LIGHTMAP)
.createCompositeState(false)
);
ZIPLINE_3D = RenderType.create(
"zipline3d",
DefaultVertexFormat.POSITION_COLOR_LIGHTMAP,
VertexFormat.Mode.QUADS, 256,
false, false,
256,
false, false, RenderPipelines.ZIPLINE_3D,
RenderType.CompositeState.builder()
.setShaderState(RenderStateShard.RENDERTYPE_LEASH_SHADER)
.setTextureState(RenderStateShard.NO_TEXTURE)
.setCullState(RenderStateShard.CULL)
.setLightmapState(RenderStateShard.LIGHTMAP)
.createCompositeState(false)
);
Expand Down
Loading