Skip to content

Commit

Permalink
Update to 1.21.2
Browse files Browse the repository at this point in the history
  • Loading branch information
MattiDragon committed Nov 4, 2024
1 parent 3e13d9c commit 9590738
Show file tree
Hide file tree
Showing 57 changed files with 720 additions and 645 deletions.
4 changes: 1 addition & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,13 @@ dependencies {

// Dependencies
include modImplementation("com.kneelawk.graphlib:graphlib-core-fabric:$graphlib_version")
modLocalRuntime("com.kneelawk.graphlib:graphlib-debugrender-fabric:$graphlib_version")
//modLocalRuntime("com.kneelawk.graphlib:graphlib-debugrender-fabric:$graphlib_version")
//modImplementation "vazkii.patchouli:Patchouli:$patchouli_version"

modImplementation annotationProcessor(include("com.github.mattidragon:ConfigToolkit:$configtoolkit_version"))
modImplementation include("dev.isxander:yet-another-config-lib:$yacl_version-fabric")
modImplementation "com.terraformersmc:modmenu:$modmenu_version"

// modImplementation include("me.luligabi:NoIndium:$noindium_version")

// Add generated data to runtime classpath (slightly hacky)
runtimeOnly files("src/main/generated")
}
Expand Down
1 change: 0 additions & 1 deletion changelog/3.0.3+1.21.1.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog/3.0.4+1.21.1.md

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/3.0.5+1.21.1.md

This file was deleted.

2 changes: 2 additions & 0 deletions changelog/4.0.0+1.21.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* Updated to 1.21.2
* Marked as beta due to using hacks to make graphlib work on newer versions
15 changes: 7 additions & 8 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
org.gradle.jvmargs=-Xmx1G

minecraft_version=1.21.1
yarn_mappings=1.21.1+build.3
loader_version=0.15.11
minecraft_version=1.21.2
yarn_mappings=1.21.2+build.1
loader_version=0.16.7

mod_version=3.0.5
mod_version=4.0.0
maven_group=io.github.mattidragon
archives_base_name=ExtendedDrawers

fabric_version=0.102.0+1.21.1
fabric_version=0.106.1+1.21.2
graphlib_version=2.0.0+1.21
patchouli_version=1.20.1-81-FABRIC
yacl_version=3.5.0+1.21
modmenu_version=11.0.1
yacl_version=3.6.1+1.21.2
modmenu_version=12.0.0-beta.1
configtoolkit_version=1.1.1
noindium_version=1.1.0+1.20.4
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.github.mattidragon.extendeddrawers.client;

import io.github.mattidragon.extendeddrawers.ExtendedDrawers;
import io.github.mattidragon.extendeddrawers.client.compression.ClientCompressionRecipeManager;
import io.github.mattidragon.extendeddrawers.client.renderer.CompactingDrawerBlockEntityRenderer;
import io.github.mattidragon.extendeddrawers.client.renderer.DrawerBlockEntityRenderer;
import io.github.mattidragon.extendeddrawers.client.renderer.ShadowDrawerBlockEntityRenderer;
import io.github.mattidragon.extendeddrawers.compacting.CompressionRecipeManager;
import io.github.mattidragon.extendeddrawers.networking.CompressionOverrideSyncPayload;
import io.github.mattidragon.extendeddrawers.networking.CompressionRecipeSyncPayload;
import io.github.mattidragon.extendeddrawers.registry.ModBlocks;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
Expand All @@ -19,8 +19,8 @@ public void onInitializeClient() {
BlockEntityRendererFactories.register(ModBlocks.SHADOW_DRAWER_BLOCK_ENTITY, ShadowDrawerBlockEntityRenderer::new);
BlockEntityRendererFactories.register(ModBlocks.COMPACTING_DRAWER_BLOCK_ENTITY, CompactingDrawerBlockEntityRenderer::new);

ClientPlayNetworking.registerGlobalReceiver(CompressionOverrideSyncPayload.ID, (packet, context) ->
CompressionRecipeManager.of(context.player().networkHandler.getRecipeManager()).setOverrides(packet.overrides()));
ClientPlayNetworking.registerGlobalReceiver(CompressionRecipeSyncPayload.ID, (packet, context) ->
ClientCompressionRecipeManager.of(context.player().networkHandler).addLadders(packet.recipes()));

ExtendedDrawers.SHIFT_ACCESS = Screen::hasShiftDown;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package io.github.mattidragon.extendeddrawers.client.compression;

import io.github.mattidragon.extendeddrawers.compacting.CompressionLadder;
import io.github.mattidragon.extendeddrawers.compacting.CompressionRecipeManager;
import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.world.World;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ClientCompressionRecipeManager implements CompressionRecipeManager {
private final Map<ItemVariant, CompressionLadder> ladders = new HashMap<>();

public static ClientCompressionRecipeManager of(ClientPlayNetworkHandler handler) {
return ((Provider) handler).extended_drawers$getCompactingManager();
}

public void addLadders(List<CompressionLadder> recipes) {
for (var recipe : recipes) {
recipe.steps().forEach(step -> ladders.put(step.item(), recipe));
}
}

@Override
public CompressionLadder getLadder(ItemVariant item, World world) {
if (ladders.containsKey(item)) {
return ladders.get(item);
}
return new CompressionLadder(List.of(new CompressionLadder.Step(item, 1)));
}

public interface Provider extends CompressionRecipeManager.Provider {
ClientCompressionRecipeManager extended_drawers$getCompactingManager();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.render.LightmapTextureManager;
import net.minecraft.client.render.OverlayTexture;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.item.Items;
import net.minecraft.screen.PlayerScreenHandler;
import net.minecraft.text.Text;
Expand Down Expand Up @@ -335,40 +336,42 @@ public int render(DrawContext context, int x, int y, int renderWidth, float tick
var playerPos = player == null ? BlockPos.ORIGIN : player.getBlockPos();

try (var ignored = ExtendedDrawers.CONFIG.override(newConfig)) {
context.drawSprite(x, y, 0, size, size, atlas.apply(id("block/single_drawer")));
context.drawSprite(x + size, y, 0, size, size, atlas.apply(id("block/quad_drawer")));
context.drawSprite(x + 2 * size, y, 0, size, size, atlas.apply(id("block/compacting_drawer")));
context.drawSpriteStretched(RenderLayer::getGuiTextured, atlas.apply(id("block/single_drawer")), x, y, size, size);
context.drawSpriteStretched(RenderLayer::getGuiTextured, atlas.apply(id("block/quad_drawer")), x + size, y, size, size);
context.drawSpriteStretched(RenderLayer::getGuiTextured, atlas.apply(id("block/compacting_drawer")), x + 2 * size, y, size, size);

matrices.push();
matrices.translate(x, y, 1);
matrices.scale(size, size, -size);
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(180));
matrices.translate(0.5, -0.5, 0);

var voidingSprite = atlas.apply(Identifier.ofVanilla("item/lava_bucket"));
var lockSprite = atlas.apply(id("item/lock"));
var upgrade2Sprite = atlas.apply(id("item/t2_upgrade"));
var upgrade4Sprite = atlas.apply(id("item/t4_upgrade"));

renderer.renderSlot(ItemVariant.of(Items.COBBLESTONE), String.valueOf((Long) 128L), false, false, List.of(lockSprite), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);

matrices.translate(0.75, 0.25, 0);
renderer.renderSlot(ItemVariant.of(Items.REDSTONE), String.valueOf((Long) 16L), true, false, List.of(lockSprite), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(0.5, 0, 0);
renderer.renderSlot(ItemVariant.of(Items.GUNPOWDER), String.valueOf((Long) 32L), true, false, List.of(voidingSprite), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(-0.5, -0.5, 0);
renderer.renderSlot(ItemVariant.of(Items.SUGAR), String.valueOf((Long) 64L), true, false, List.of(lockSprite, voidingSprite, upgrade2Sprite), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(0.5, 0, 0);
renderer.renderSlot(ItemVariant.of(Items.GLOWSTONE_DUST), String.valueOf((Long) 128L), true, false, List.of(upgrade4Sprite), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);

matrices.translate(0.75, 0.5, 0);
renderer.renderIcons(List.of(lockSprite, voidingSprite, upgrade4Sprite), true, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, matrices, context.getVertexConsumers());
renderer.renderSlot(ItemVariant.of(Items.IRON_INGOT), String.valueOf((Long) 9L), true, false, List.of(), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(0.25, -0.5, 0);
renderer.renderSlot(ItemVariant.of(Items.IRON_NUGGET), String.valueOf((Long) 81L), true, false, List.of(), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(-0.5, 0, 0);
renderer.renderSlot(ItemVariant.of(Items.IRON_BLOCK), String.valueOf((Long) 1L), true, false, List.of(), matrices, context.getVertexConsumers(), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);


context.draw(vertexConsumers -> {
var voidingSprite = atlas.apply(Identifier.ofVanilla("item/lava_bucket"));
var lockSprite = atlas.apply(id("item/lock"));
var upgrade2Sprite = atlas.apply(id("item/t2_upgrade"));
var upgrade4Sprite = atlas.apply(id("item/t4_upgrade"));

renderer.renderSlot(ItemVariant.of(Items.COBBLESTONE), String.valueOf((Long) 128L), false, false, List.of(lockSprite), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);

matrices.translate(0.75, 0.25, 0);
renderer.renderSlot(ItemVariant.of(Items.REDSTONE), String.valueOf((Long) 16L), true, false, List.of(lockSprite), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(0.5, 0, 0);
renderer.renderSlot(ItemVariant.of(Items.GUNPOWDER), String.valueOf((Long) 32L), true, false, List.of(voidingSprite), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(-0.5, -0.5, 0);
renderer.renderSlot(ItemVariant.of(Items.SUGAR), String.valueOf((Long) 64L), true, false, List.of(lockSprite, voidingSprite, upgrade2Sprite), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(0.5, 0, 0);
renderer.renderSlot(ItemVariant.of(Items.GLOWSTONE_DUST), String.valueOf((Long) 128L), true, false, List.of(upgrade4Sprite), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);

matrices.translate(0.75, 0.5, 0);
renderer.renderIcons(List.of(lockSprite, voidingSprite, upgrade4Sprite), true, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, matrices, vertexConsumers);
renderer.renderSlot(ItemVariant.of(Items.IRON_INGOT), String.valueOf((Long) 9L), true, false, List.of(), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(0.25, -0.5, 0);
renderer.renderSlot(ItemVariant.of(Items.IRON_NUGGET), String.valueOf((Long) 81L), true, false, List.of(), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
matrices.translate(-0.5, 0, 0);
renderer.renderSlot(ItemVariant.of(Items.IRON_BLOCK), String.valueOf((Long) 1L), true, false, List.of(), matrices, vertexConsumers, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, 0, playerPos, null);
});

matrices.pop();
}

Expand All @@ -387,7 +390,7 @@ public int render(DrawContext graphics, int x, int y, int renderWidth, float tic
var blockAtlas = MinecraftClient.getInstance().getSpriteAtlas(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE);
var sprite = blockAtlas.apply(id);

graphics.drawSprite(x + renderWidth / 3, y, 0, renderWidth / 3, renderWidth / 3, sprite);
graphics.drawSpriteStretched(RenderLayer::getGuiTextured, sprite, x + renderWidth / 3, y, renderWidth / 3, renderWidth / 3);

return renderWidth / 3;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package io.github.mattidragon.extendeddrawers.client.mixin;

import io.github.mattidragon.extendeddrawers.client.compression.ClientCompressionRecipeManager;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;

@Mixin(ClientPlayNetworkHandler.class)
public class ClientPlayNetworkHandlerMixin implements ClientCompressionRecipeManager.Provider {
@Unique
private final ClientCompressionRecipeManager compactingManager = new ClientCompressionRecipeManager();

@Override
public ClientCompressionRecipeManager extended_drawers$getCompactingManager() {
return compactingManager;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package io.github.mattidragon.extendeddrawers.client.mixin;

import io.github.mattidragon.extendeddrawers.client.compression.ClientCompressionRecipeManager;
import io.github.mattidragon.extendeddrawers.compacting.CompressionRecipeManager;
import io.github.mattidragon.extendeddrawers.mixin.WorldMixin;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.world.ClientWorld;
import org.spongepowered.asm.mixin.Mixin;

import java.util.Objects;

@Mixin(ClientWorld.class)
public class ClientWorldMixin extends WorldMixin {
@Override
public CompressionRecipeManager extended_drawers$getCompactingManager() {
return ((ClientCompressionRecipeManager.Provider) Objects.requireNonNull(MinecraftClient.getInstance().getNetworkHandler(), "network handler should exist")).extended_drawers$getCompactingManager();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.json.ModelTransformationMode;
import net.minecraft.client.texture.Sprite;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ModelTransformationMode;
import net.minecraft.screen.PlayerScreenHandler;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
Expand All @@ -29,7 +29,6 @@
import org.joml.Vector3f;

import java.util.List;
import java.util.Objects;

public abstract class AbstractDrawerBlockEntityRenderer<T extends BlockEntity> implements BlockEntityRenderer<T> {
private static final Quaternionf ITEM_LIGHT_ROTATION_3D = RotationAxis.POSITIVE_X.rotationDegrees(-15).mul(RotationAxis.POSITIVE_Y.rotationDegrees(15));
Expand Down Expand Up @@ -103,7 +102,7 @@ public final boolean shouldRender(T drawer, Direction facing) {
var pos = drawer.getPos();
var state = drawer.getCachedState();

return Block.shouldDrawSide(state, world, pos, facing, pos.offset(facing));
return Block.shouldDrawSide(state, world.getBlockState(pos.offset(facing)), facing);
}

public void renderIcons(List<Sprite> icons, boolean small, int light, int overlay, MatrixStack matrices, VertexConsumerProvider vertexConsumers) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.TextFieldWidget;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.screen.ScreenTexts;
import net.minecraft.text.OrderedText;
import net.minecraft.text.Style;
Expand Down Expand Up @@ -94,7 +95,7 @@ private static boolean isValid(String text) {
@Override
public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) {
renderInGameBackground(context);
context.drawTexture(TEXTURE, width / 2 - 64, height / 2 - 32, 0, 0, 128, 64, 128, 64);
context.drawTexture(RenderLayer::getGuiTextured, TEXTURE, width / 2 - 64, height / 2 - 32, 0, 0, 128, 64, 128, 64);
}

@Override
Expand Down
2 changes: 2 additions & 0 deletions src/client/resources/extended_drawers.client.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
"client": [
"ClientPlayerEntityMixin",
"ClientPlayerInteractionManagerMixin",
"ClientPlayNetworkHandlerMixin",
"ClientWorldMixin",
"RenderSystemAccess"
],
"injectors": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,9 @@
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"C": {
"item": "minecraft:cobblestone"
},
"D": {
"tag": "extended_drawers:drawers"
},
"I": {
"item": "minecraft:iron_ingot"
}
"C": "minecraft:cobblestone",
"D": "#extended_drawers:drawers",
"I": "minecraft:iron_ingot"
},
"pattern": [
"CIC",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,10 @@
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"C": {
"item": "minecraft:chest"
},
"I": {
"item": "minecraft:iron_block"
},
"P": {
"item": "minecraft:piston"
},
"S": {
"tag": "minecraft:stone_crafting_materials"
}
"C": "minecraft:chest",
"I": "minecraft:iron_block",
"P": "minecraft:piston",
"S": "#minecraft:stone_crafting_materials"
},
"pattern": [
"SPS",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"L": {
"tag": "minecraft:logs"
},
"P": {
"tag": "minecraft:planks"
}
"L": "#minecraft:logs",
"P": "#minecraft:planks"
},
"pattern": [
"LPL",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,9 @@
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"C": {
"item": "minecraft:chest"
},
"L": {
"tag": "minecraft:logs"
},
"P": {
"tag": "minecraft:planks"
}
"C": "minecraft:chest",
"L": "#minecraft:logs",
"P": "#minecraft:planks"
},
"pattern": [
"LPL",
Expand Down
12 changes: 3 additions & 9 deletions src/main/generated/data/extended_drawers/recipe/limiter.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,9 @@
"type": "minecraft:crafting_shaped",
"category": "redstone",
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"E": {
"item": "minecraft:ender_pearl"
},
"R": {
"item": "minecraft:redstone"
}
"C": "minecraft:copper_ingot",
"E": "minecraft:ender_pearl",
"R": "minecraft:redstone"
},
"pattern": [
"RCR",
Expand Down
Loading

0 comments on commit 9590738

Please sign in to comment.