Skip to content

Instantly share code, notes, and snippets.

View lowercasebtw's full-sized avatar

lowercasebtw lowercasebtw

  • United States
  • 15:12 (UTC -05:00)
View GitHub Profile
private boolean shouldRestoreSprint = false;
// In LocalPlayer#tick, injected after ``super.tick``
private void fixMC152728() {
if (shouldRestoreSprint && !this.canResumeSprinting()) {
shouldRestoreSprint = false;
}
if (this.isSprinting() && this.isUsingItem()) {
ItemStack stack = this.getUseItem();
package btw.mixces.animatium;
import com.mojang.blaze3d.buffers.GpuBuffer;
import com.mojang.blaze3d.buffers.GpuBufferSlice;
import com.mojang.blaze3d.pipeline.RenderPipeline;
import com.mojang.blaze3d.pipeline.RenderTarget;
import com.mojang.blaze3d.systems.RenderPass;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.systems.ScissorState;
import com.mojang.blaze3d.textures.GpuTextureView;
@lowercasebtw
lowercasebtw / MixinItemRenderer.java
Last active April 18, 2025 22:29
MixinItemRenderer
import com.mojang.blaze3d.buffers.BufferType;
import com.mojang.blaze3d.buffers.BufferUsage;
import com.mojang.blaze3d.buffers.GpuBuffer;
import com.mojang.blaze3d.pipeline.RenderPipeline;
import com.mojang.blaze3d.pipeline.RenderTarget;
import com.mojang.blaze3d.systems.RenderPass;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.GpuTexture;
import com.mojang.blaze3d.vertex.*;
import net.minecraft.client.Minecraft;
@lowercasebtw
lowercasebtw / DynamicTransformsBuilder.java
Last active September 16, 2025 18:26
DynamicTransformsBuilder Util Class
import com.mojang.blaze3d.buffers.GpuBufferSlice;
import com.mojang.blaze3d.systems.RenderSystem;
import org.joml.Matrix4f;
import org.joml.Vector3f;
import org.joml.Vector4f;
import java.util.Optional;
public class DynamicTransformsBuilder {
private Optional<Matrix4f> modelViewMatrix = Optional.empty();
import { cp } from "node:fs/promises";
import process from "node:process";
type PathLike = string;
class Files {
static listdir(path: PathLike) {
return [...Deno.readDirSync(path)].map(c => c.name);
}
import os, shutil, json
from jproperties import Properties
from os import path
from json import JSONEncoder
CONVERSION_SUFFIX = "_converted"
MINECRAFT_PATH = path.join("assets", "minecraft")
ATLASES_PATH = path.join(MINECRAFT_PATH, "atlases")
TEXTURES_PATH = path.join(MINECRAFT_PATH, "textures")
OPTIFINE_PATH = path.join(MINECRAFT_PATH, "optifine")
public static void renderBufferWithPipeline(
String name,
RenderPipeline renderPipeline,
RenderTarget renderTarget,
Consumer<BufferBuilder> bufferBuilderConsumer,
Consumer<RenderPass> uniformAndSamplerConsumer
) {
VertexFormat.Mode mode = renderPipeline.getVertexFormatMode();
BufferBuilder builder = Tesselator.getInstance().begin(mode, renderPipeline.getVertexFormat());
bufferBuilderConsumer.accept(builder);
@lowercasebtw
lowercasebtw / model_schema.json
Last active November 7, 2024 20:51
24w45a Item Model Branch Definition Json Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Minecraft Item Model Defenition",
"description": "The item model defenition schema for minecraft since 24w45a",
"type": "object",
"properties": {
"model": {
"$ref": "#/$defs/model"
}
},
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