mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-08-28 16:22:18 +00:00
Update to Minecraft 1.21.7
This commit is contained in:
parent
76869593f0
commit
67412a2b72
@ -15,4 +15,4 @@ isUnstable=true
|
||||
modVersion=1.116.0
|
||||
|
||||
# Minecraft properties: We want to configure this here so we can read it in settings.gradle
|
||||
mcVersion=1.21.6
|
||||
mcVersion=1.21.7
|
||||
|
@ -7,14 +7,14 @@
|
||||
# Minecraft
|
||||
# MC version is specified in gradle.properties, as we need that in settings.gradle.
|
||||
# Remember to update corresponding versions in fabric.mod.json/neoforge.mods.toml
|
||||
fabric-api = "0.127.0+1.21.6"
|
||||
fabric-api = "0.128.0+1.21.7"
|
||||
fabric-loader = "0.16.14"
|
||||
neoForge = "21.6.12-beta"
|
||||
neoForge = "21.7.1-beta"
|
||||
neoMergeTool = "2.0.0"
|
||||
mixin = "0.8.5"
|
||||
parchment = "2025.04.19"
|
||||
parchmentMc = "1.21.5"
|
||||
yarn = "1.21.5+build.1"
|
||||
parchment = "2025.06.29"
|
||||
parchmentMc = "1.21.6"
|
||||
yarn = "1.21.7+build.1"
|
||||
|
||||
# Core dependencies (these versions are tied to the version Minecraft uses)
|
||||
fastutil = "8.5.15"
|
||||
|
@ -18,6 +18,7 @@ import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.block.model.ItemTransform;
|
||||
import net.minecraft.client.renderer.item.ItemModelResolver;
|
||||
import net.minecraft.client.renderer.item.ItemStackRenderState;
|
||||
import net.minecraft.client.renderer.item.TrackingItemStackRenderState;
|
||||
import net.minecraft.client.renderer.special.SpecialModelRenderer;
|
||||
import net.minecraft.client.resources.model.ModelBaker;
|
||||
import net.minecraft.core.component.DataComponentPatch;
|
||||
@ -64,7 +65,7 @@ public final class ItemUpgradeModel implements TurtleUpgradeModel {
|
||||
public void renderForItem(UpgradeData<ITurtleUpgrade> upgrade, TurtleSide side, ItemStackRenderState renderer, ItemModelResolver resolver, ItemTransform transform, int seed) {
|
||||
renderer.appendModelIdentityElement(this);
|
||||
|
||||
var childState = new ItemStackRenderState();
|
||||
var childState = new TrackingItemStackRenderState();
|
||||
resolver.updateForTopItem(childState, upgrade.getUpgradeItem(), ItemDisplayContext.NONE, null, null, seed);
|
||||
if (!childState.isEmpty()) {
|
||||
renderer.appendModelIdentityElement(childState.getModelIdentity());
|
||||
|
@ -24,6 +24,7 @@ import dan200.computercraft.shared.ModRegistry;
|
||||
import dan200.computercraft.shared.computer.inventory.AbstractComputerMenu;
|
||||
import net.minecraft.client.color.item.ItemTintSource;
|
||||
import net.minecraft.client.gui.render.pip.PictureInPictureRenderer;
|
||||
import net.minecraft.client.gui.render.state.pip.PictureInPictureRenderState;
|
||||
import net.minecraft.client.gui.screens.MenuScreens;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
import net.minecraft.client.gui.screens.inventory.MenuAccess;
|
||||
@ -49,7 +50,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
@ -193,7 +193,11 @@ public final class ClientRegistry {
|
||||
register.accept(TurtleShowElfOverlay.ID, TurtleShowElfOverlay.CODEC);
|
||||
}
|
||||
|
||||
public static void registerPictureInPictureRenderers(Consumer<Function<MultiBufferSource.BufferSource, PictureInPictureRenderer<?>>> register) {
|
||||
register.accept(PrintoutScreen.PrintoutPictureRenderer::new);
|
||||
public interface RegisterPictureInPictureRenderer {
|
||||
<T extends PictureInPictureRenderState> void register(Class<T> state, Function<MultiBufferSource.BufferSource, PictureInPictureRenderer<T>> factory);
|
||||
}
|
||||
|
||||
public static void registerPictureInPictureRenderers(RegisterPictureInPictureRenderer register) {
|
||||
register.register(PrintoutScreen.PrintoutRenderState.class, PrintoutScreen.PrintoutPictureRenderer::new);
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
package dan200.computercraft.client.platform;
|
||||
|
||||
import com.google.auto.service.AutoService;
|
||||
import dan200.computercraft.client.ClientTableFormatter;
|
||||
import dan200.computercraft.client.gui.AbstractComputerScreen;
|
||||
import dan200.computercraft.client.gui.OptionScreen;
|
||||
@ -36,7 +35,6 @@ import java.util.UUID;
|
||||
/**
|
||||
* The client-side implementation of {@link ClientNetworkContext}.
|
||||
*/
|
||||
@AutoService(ClientNetworkContext.class)
|
||||
public final class ClientNetworkContextImpl implements ClientNetworkContext {
|
||||
@Override
|
||||
public void handleChatTable(TableBuilder table) {
|
||||
|
@ -9,15 +9,14 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.mojang.brigadier.builder.RequiredArgumentBuilder;
|
||||
import dan200.computercraft.api.ComputerCraftAPI;
|
||||
import dan200.computercraft.api.client.FabricComputerCraftAPIClient;
|
||||
import dan200.computercraft.client.platform.ClientNetworkContextImpl;
|
||||
import dan200.computercraft.client.platform.FabricModelKey;
|
||||
import dan200.computercraft.client.platform.ModelKey;
|
||||
import dan200.computercraft.core.util.Nullability;
|
||||
import dan200.computercraft.impl.Services;
|
||||
import dan200.computercraft.shared.ComputerCraft;
|
||||
import dan200.computercraft.shared.ModRegistry;
|
||||
import dan200.computercraft.shared.config.ConfigSpec;
|
||||
import dan200.computercraft.shared.network.NetworkMessages;
|
||||
import dan200.computercraft.shared.network.client.ClientNetworkContext;
|
||||
import dan200.computercraft.shared.platform.FabricConfigFile;
|
||||
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
|
||||
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
|
||||
@ -32,7 +31,10 @@ import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.color.item.ItemTintSources;
|
||||
import net.minecraft.client.gui.render.pip.PictureInPictureRenderer;
|
||||
import net.minecraft.client.gui.render.state.pip.PictureInPictureRenderState;
|
||||
import net.minecraft.client.gui.screens.MenuScreens;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.chunk.ChunkSectionLayer;
|
||||
import net.minecraft.client.renderer.item.ItemModels;
|
||||
import net.minecraft.client.renderer.item.properties.conditional.ConditionalItemModelProperties;
|
||||
@ -45,12 +47,13 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
import static dan200.computercraft.core.util.Nullability.assertNonNull;
|
||||
|
||||
public class ComputerCraftClient {
|
||||
public static void init() {
|
||||
var clientNetwork = Services.load(ClientNetworkContext.class);
|
||||
var clientNetwork = new ClientNetworkContextImpl();
|
||||
for (var type : NetworkMessages.getClientbound()) {
|
||||
ClientPlayNetworking.registerGlobalReceiver(
|
||||
type.type(), (packet, responseSender) -> packet.handle(clientNetwork)
|
||||
@ -81,7 +84,12 @@ public class ComputerCraftClient {
|
||||
BlockRenderLayerMap.putBlock(ModRegistry.Blocks.MONITOR_NORMAL.get(), ChunkSectionLayer.CUTOUT);
|
||||
BlockRenderLayerMap.putBlock(ModRegistry.Blocks.MONITOR_ADVANCED.get(), ChunkSectionLayer.CUTOUT);
|
||||
|
||||
ClientRegistry.registerPictureInPictureRenderers(f -> SpecialGuiElementRegistry.register(c -> f.apply(c.vertexConsumers())));
|
||||
ClientRegistry.registerPictureInPictureRenderers(new ClientRegistry.RegisterPictureInPictureRenderer() {
|
||||
@Override
|
||||
public <T extends PictureInPictureRenderState> void register(Class<T> ty, Function<MultiBufferSource.BufferSource, PictureInPictureRenderer<T>> f) {
|
||||
SpecialGuiElementRegistry.register(c -> f.apply(c.vertexConsumers()));
|
||||
}
|
||||
});
|
||||
|
||||
ClientTickEvents.START_CLIENT_TICK.register(client -> ClientHooks.onTick());
|
||||
// This isn't 100% consistent with Forge, but not worth a mixin.
|
||||
|
@ -50,8 +50,8 @@
|
||||
],
|
||||
"depends": {
|
||||
"fabricloader": ">=0.16.14",
|
||||
"fabric-api": ">=0.127.0",
|
||||
"minecraft": "=1.21.6"
|
||||
"fabric-api": ">=0.128.0",
|
||||
"minecraft": "=1.21.7"
|
||||
},
|
||||
"accessWidener": "computercraft.accesswidener"
|
||||
}
|
||||
|
@ -7,9 +7,11 @@ package dan200.computercraft.client;
|
||||
import com.google.common.reflect.TypeToken;
|
||||
import dan200.computercraft.api.ComputerCraftAPI;
|
||||
import dan200.computercraft.api.client.turtle.RegisterTurtleModelEvent;
|
||||
import dan200.computercraft.client.platform.ClientNetworkContextImpl;
|
||||
import dan200.computercraft.client.platform.ForgeModelKey;
|
||||
import dan200.computercraft.client.platform.ModelKey;
|
||||
import dan200.computercraft.client.render.ExtendedItemFrameRenderState;
|
||||
import dan200.computercraft.shared.network.NetworkMessages;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.entity.ItemFrameRenderer;
|
||||
import net.minecraft.client.resources.model.ModelBaker;
|
||||
@ -22,6 +24,7 @@ import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.neoforged.neoforge.client.event.*;
|
||||
import net.neoforged.neoforge.client.model.standalone.UnbakedStandaloneModel;
|
||||
import net.neoforged.neoforge.client.network.event.RegisterClientPayloadHandlersEvent;
|
||||
import net.neoforged.neoforge.client.renderstate.RegisterRenderStateModifiersEvent;
|
||||
|
||||
import java.util.ArrayDeque;
|
||||
@ -40,6 +43,14 @@ public final class ForgeClientRegistry {
|
||||
private ForgeClientRegistry() {
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerNetwork(RegisterClientPayloadHandlersEvent event) {
|
||||
var context = new ClientNetworkContextImpl();
|
||||
for (var type : NetworkMessages.getClientbound()) {
|
||||
event.register(type.type(), (packet, ctx) -> ctx.enqueueWork(() -> packet.handle(context)));
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerModels(ModelEvent.RegisterStandalone event) {
|
||||
// Load resources
|
||||
|
@ -13,7 +13,6 @@ import dan200.computercraft.api.peripheral.PeripheralCapability;
|
||||
import dan200.computercraft.api.pocket.IPocketUpgrade;
|
||||
import dan200.computercraft.api.turtle.ITurtleUpgrade;
|
||||
import dan200.computercraft.impl.PocketUpgrades;
|
||||
import dan200.computercraft.impl.Services;
|
||||
import dan200.computercraft.impl.TurtleUpgrades;
|
||||
import dan200.computercraft.shared.CommonHooks;
|
||||
import dan200.computercraft.shared.ModRegistry;
|
||||
@ -135,7 +134,7 @@ public final class ComputerCraft {
|
||||
}
|
||||
|
||||
private static <T extends NetworkMessage<ClientNetworkContext>> void registerClientbound(PayloadRegistrar registrar, CustomPacketPayload.TypeAndCodec<RegistryFriendlyByteBuf, T> type) {
|
||||
registrar.playToClient(type.type(), type.codec(), (t, context) -> context.enqueueWork(() -> t.handle(ClientHolderHolder.get())));
|
||||
registrar.playToClient(type.type(), type.codec());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -220,24 +219,4 @@ public final class ComputerCraft {
|
||||
public static void onCreativeTab(BuildCreativeModeTabContentsEvent event) {
|
||||
CommonHooks.onBuildCreativeTab(event.getTabKey(), event.getParameters(), event);
|
||||
}
|
||||
|
||||
/**
|
||||
* This holds an instance of {@link ClientNetworkContext}. This is a separate class to ensure that the instance is
|
||||
* lazily created when needed on the client.
|
||||
*/
|
||||
private static final class ClientHolderHolder {
|
||||
private static final @Nullable ClientNetworkContext INSTANCE;
|
||||
private static final @Nullable Throwable ERROR;
|
||||
|
||||
static {
|
||||
var helper = Services.tryLoad(ClientNetworkContext.class);
|
||||
INSTANCE = helper.instance();
|
||||
ERROR = helper.error();
|
||||
}
|
||||
|
||||
static ClientNetworkContext get() {
|
||||
var instance = INSTANCE;
|
||||
return instance == null ? Services.raise(ClientNetworkContext.class, ERROR) : instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ CC: Tweaked is a fork of ComputerCraft, adding programmable computers, turtles a
|
||||
[[dependencies.computercraft]]
|
||||
modId="neoforge"
|
||||
type="required"
|
||||
versionRange="[${neoVersion},21.7)"
|
||||
versionRange="[${neoVersion},21.8)"
|
||||
ordering="NONE"
|
||||
side="BOTH"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user