Skip to content

Commit d3a8135

Browse files
committed
port(1.21.4): Begin initial port to 21.4
This is more or less a direct port of what existed to 21.4, fixing mixins as appropriate. There are a few bugs that need to be looked into before any real release: - The options menu does not properly listen to mouse input - Framerate limits are not yet implemented - Probably a whole lot of other bugs
1 parent f8240c7 commit d3a8135

File tree

67 files changed

+401
-677
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+401
-677
lines changed

gradle.properties

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
org.gradle.jvmargs=-Xmx1G
1+
org.gradle.jvmargs=-Xmx2G
22

33
kotlin.code.style=official
44

55
# Fabric Properties
66
# check these on https://fabricmc.net/develop/
7-
minecraft_version=1.21.1
8-
parchment_version=2024.06.23-1.21
9-
fabric_version=0.100.1+1.21
10-
fabric_loader_version=0.15.11
7+
minecraft_version=1.21.4
8+
parchment_version=2024.11.17-1.21.1
9+
fabric_version=0.110.5+1.21.4
10+
fabric_loader_version=0.16.9
1111

1212
embeddium.fabric_mode=false
1313

@@ -17,21 +17,21 @@ embeddium.fabric_mode=false
1717
archives_base_name = embeddium
1818

1919

20-
forge_version=21.1.61
20+
forge_version=21.4.5-beta
2121

22-
codechicken_fileid=4382729
22+
codechicken_fileid=5826640
2323
ie_fileid=1.20.4-10.0.1-pre.163
2424

2525
base_mc_version_commit=0263cc2ffd33599aa90d5b226242035459e45ee7
2626

2727
use_phi=false
2828
# find neoform version for your Minecraft version here: https://projects.neoforged.net/neoforged/neoform
29-
neoform_version=20240605.103358
29+
neoform_version=20241203.161809
3030

31-
asm_version=9.5
32-
mixin_version=0.13.4+mixin.0.8.5
33-
eventbus_version=7.2.0
34-
mixin_extras_version=0.3.5
31+
asm_version=9.7
32+
mixin_version=0.15.2+mixin.0.8.7
33+
eventbus_version=8.0.2
34+
mixin_extras_version=0.4.1
3535
apache_maven_artifact_version=3.8.5
3636
spi_version=9.0.2
37-
modlauncher_version=11.0.2
37+
modlauncher_version=11.0.4

src/gametest/java/org/embeddedt/embeddium/impl/gametest/content/TestBlock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public TestBlock() {
1919
}
2020

2121
@Override
22-
public VoxelShape getOcclusionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos) {
22+
public VoxelShape getOcclusionShape(BlockState pState) {
2323
return Shapes.empty();
2424
}
2525

src/gametest/java/org/embeddedt/embeddium/impl/gametest/content/TestRegistry.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import net.minecraft.network.chat.Component;
1313
import net.minecraft.resources.ResourceLocation;
1414
import net.minecraft.world.Difficulty;
15+
import net.minecraft.world.flag.FeatureFlagSet;
1516
import net.minecraft.world.level.GameRules;
1617
import net.minecraft.world.level.GameType;
1718
import net.minecraft.world.level.LevelSettings;
@@ -66,7 +67,7 @@ public class TestRegistry {
6667

6768
public static final DeferredHolder<Block, TestBlock> TEST_BLOCK = BLOCKS.register("test_block", TestBlock::new);
6869
public static final DeferredHolder<Block, NotAnAirBlock> NOT_AN_AIR_BLOCK = BLOCKS.register("not_an_air_block", NotAnAirBlock::new);
69-
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<?>> TEST_BLOCK_ENTITY = BLOCK_ENTITIES.register("test_block_entity", () -> BlockEntityType.Builder.of(TestBlockEntity::new, TEST_BLOCK.get()).build(null));
70+
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<?>> TEST_BLOCK_ENTITY = BLOCK_ENTITIES.register("test_block_entity", () -> new BlockEntityType<>(TestBlockEntity::new, TEST_BLOCK.get()));
7071

7172
public static final ResourceLocation EMPTY_TEMPLATE = ResourceLocation.fromNamespaceAndPath(EmbeddiumConstants.MODID, "empty_structure");
7273
public static final String EMPTY_TEMPLATE_STR = EMPTY_TEMPLATE.toString();
@@ -93,7 +94,7 @@ public static void registerPayloads(final RegisterPayloadHandlersEvent event) {
9394

9495
private static void registerModelForAllStates(ModelEvent.ModifyBakingResult event, Block block, BakedModel model) {
9596
for(BlockState state : block.getStateDefinition().getPossibleStates()) {
96-
event.getModels().put(BlockModelShaper.stateToModelLocation(state), model);
97+
event.getBakingResult().blockStateModels().put(BlockModelShaper.stateToModelLocation(state), model);
9798
}
9899
}
99100

@@ -102,8 +103,8 @@ private static void registerModelForAllStates(ModelEvent.ModifyBakingResult even
102103
*/
103104
@SubscribeEvent
104105
public static void onBakingModify(ModelEvent.ModifyBakingResult event) {
105-
registerModelForAllStates(event, TEST_BLOCK.get(), new TestModel(event.getModels().get(ModelBakery.MISSING_MODEL_VARIANT)));
106-
registerModelForAllStates(event, NOT_AN_AIR_BLOCK.get(), new InstrumentingModelWrapper<>(event.getModels().get(BlockModelShaper.stateToModelLocation(Blocks.STONE.defaultBlockState()))));
106+
registerModelForAllStates(event, TEST_BLOCK.get(), new TestModel(event.getBakingResult().missingModel()));
107+
registerModelForAllStates(event, NOT_AN_AIR_BLOCK.get(), new InstrumentingModelWrapper<>(event.getBakingResult().blockStateModels().get(BlockModelShaper.stateToModelLocation(Blocks.STONE.defaultBlockState()))));
107108
}
108109

109110
static class GameEvents {
@@ -132,9 +133,9 @@ public static void onScreenInit(ScreenEvent.Init.Post event) {
132133
var messageScreen = new GenericMessageScreen(Component.literal("Bootstrapping gametests..."));
133134
mc.forceSetScreen(messageScreen);
134135
String levelName = "embeddium-test-" + UUID.randomUUID();
135-
LevelSettings settings = new LevelSettings(levelName, GameType.CREATIVE, false, Difficulty.PEACEFUL, true, new GameRules(), WorldDataConfiguration.DEFAULT);
136+
LevelSettings settings = new LevelSettings(levelName, GameType.CREATIVE, false, Difficulty.PEACEFUL, true, new GameRules(FeatureFlagSet.of()), WorldDataConfiguration.DEFAULT);
136137
mc.createWorldOpenFlows().createFreshLevel(settings.levelName(), settings, new WorldOptions(1024, false, false), registry -> {
137-
return registry.registryOrThrow(Registries.WORLD_PRESET).getHolderOrThrow(WorldPresets.FLAT).value().createWorldDimensions();
138+
return registry.lookupOrThrow(Registries.WORLD_PRESET).getOrThrow(WorldPresets.FLAT).value().createWorldDimensions();
138139
}, messageScreen);
139140
}
140141
}

src/gametest/java/org/embeddedt/embeddium/impl/gametest/content/client/InstrumentingModelWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
import net.minecraft.client.renderer.RenderType;
44
import net.minecraft.client.renderer.block.model.BakedQuad;
55
import net.minecraft.client.resources.model.BakedModel;
6+
import net.minecraft.client.resources.model.DelegateBakedModel;
67
import net.minecraft.core.Direction;
78
import net.minecraft.util.RandomSource;
89
import net.minecraft.world.level.block.state.BlockState;
9-
import net.neoforged.neoforge.client.model.BakedModelWrapper;
1010
import net.neoforged.neoforge.client.model.data.ModelData;
1111
import org.jetbrains.annotations.NotNull;
1212
import org.jetbrains.annotations.Nullable;
1313

1414
import java.util.List;
1515

16-
public class InstrumentingModelWrapper<T extends BakedModel> extends BakedModelWrapper<T> {
16+
public class InstrumentingModelWrapper<T extends BakedModel> extends DelegateBakedModel {
1717
private volatile boolean hasBeenCalled;
1818

1919
public InstrumentingModelWrapper(T originalModel) {

src/gametest/java/org/embeddedt/embeddium/impl/gametest/content/client/TestModel.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import net.minecraft.client.renderer.RenderType;
44
import net.minecraft.client.renderer.block.model.BakedQuad;
55
import net.minecraft.client.resources.model.BakedModel;
6+
import net.minecraft.client.resources.model.DelegateBakedModel;
67
import net.minecraft.core.BlockPos;
78
import net.minecraft.core.Direction;
89
import net.minecraft.util.RandomSource;
910
import net.minecraft.world.level.BlockAndTintGetter;
1011
import net.minecraft.world.level.block.state.BlockState;
11-
import net.neoforged.neoforge.client.model.BakedModelWrapper;
1212
import net.neoforged.neoforge.client.model.data.ModelData;
1313
import net.neoforged.neoforge.client.model.data.ModelProperty;
1414
import org.embeddedt.embeddium.impl.gametest.content.TestBlockEntity;
@@ -18,7 +18,7 @@
1818
import java.util.List;
1919
import java.util.Objects;
2020

21-
public class TestModel extends BakedModelWrapper<BakedModel> {
21+
public class TestModel extends DelegateBakedModel {
2222
public static final ModelProperty<Object> TEST_MODEL_PROPERTY = new ModelProperty<>();
2323
public static final Object TEST_MODEL_VALUE = new Object();
2424

src/main/java/org/embeddedt/embeddium/impl/compatibility/checks/SodiumResourcePackMetadata.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.mojang.serialization.Codec;
44
import com.mojang.serialization.codecs.RecordCodecBuilder;
5-
import net.minecraft.server.packs.metadata.MetadataSectionSerializer;
65
import net.minecraft.server.packs.metadata.MetadataSectionType;
76

87
import java.util.List;
@@ -18,6 +17,5 @@ public record SodiumResourcePackMetadata(List<String> ignoredShaders) {
1817
.forGetter(SodiumResourcePackMetadata::ignoredShaders))
1918
.apply(instance, SodiumResourcePackMetadata::new)
2019
);
21-
public static final MetadataSectionType<SodiumResourcePackMetadata> SERIALIZER =
22-
MetadataSectionType.fromCodec("sodium", CODEC);
20+
public static final MetadataSectionType<SodiumResourcePackMetadata> SERIALIZER = new MetadataSectionType<>("sodium", CODEC);
2321
}

src/main/java/org/embeddedt/embeddium/impl/gui/EmbeddiumGameOptionPages.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.mojang.blaze3d.pipeline.RenderTarget;
55
import com.mojang.blaze3d.platform.Window;
66
import net.minecraft.ChatFormatting;
7+
import net.minecraft.server.level.ParticleStatus;
78
import net.neoforged.fml.ModList;
89
import net.neoforged.neoforge.common.NeoForgeConfig;
910
import org.embeddedt.embeddium.api.options.structure.OptionFlag;
@@ -31,11 +32,15 @@
3132
import org.embeddedt.embeddium.impl.render.ShaderModBridge;
3233
import org.lwjgl.opengl.GL;
3334
import org.lwjgl.opengl.GLCapabilities;
35+
import org.slf4j.Logger;
36+
import org.slf4j.LoggerFactory;
3437

3538
import java.util.ArrayList;
3639
import java.util.List;
3740

3841
public class EmbeddiumGameOptionPages {
42+
private static final Logger LOGGER = LoggerFactory.getLogger(EmbeddiumGameOptionPages.class);
43+
3944
private static final EmbeddiumOptionsStorage sodiumOpts = new EmbeddiumOptionsStorage();
4045
private static final MinecraftOptionsStorage vanillaOpts = MinecraftOptionsStorage.INSTANCE;
4146

@@ -127,7 +132,8 @@ public static OptionPage general() {
127132
.setControl(option -> new SliderControl(option, 10, 260, 10, ControlValueFormatter.fpsLimit()))
128133
.setBinding((opts, value) -> {
129134
opts.framerateLimit().set(value);
130-
Minecraft.getInstance().getWindow().setFramerateLimit(value);
135+
LOGGER.warn("getWindow().setFramerateLimit(...) Not Yet Implemented");
136+
//Minecraft.getInstance().getWindow().setFramerateLimit(value);
131137
}, opts -> opts.framerateLimit().get())
132138
.build())
133139
.build());
@@ -191,7 +197,7 @@ public static OptionPage quality() {
191197
if (Minecraft.useShaderTransparency()) {
192198
RenderTarget framebuffer = Minecraft.getInstance().levelRenderer.getCloudsTarget();
193199
if (framebuffer != null) {
194-
framebuffer.clear(Minecraft.ON_OSX);
200+
framebuffer.clear();
195201
}
196202
}
197203
}, opts -> opts.cloudStatus().get())

src/main/java/org/embeddedt/embeddium/impl/gui/EmbeddiumVideoOptionsScreen.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.common.collect.Multimap;
44
import com.mojang.blaze3d.systems.RenderSystem;
5+
import net.minecraft.client.renderer.RenderType;
56
import net.minecraft.network.chat.FormattedText;
67
import net.minecraft.network.chat.Style;
78
import org.embeddedt.embeddium.impl.Embeddium;
@@ -299,17 +300,17 @@ public void renderBackground(GuiGraphics gfx, int mouseX, int mouseY, float part
299300
super.renderBackground(gfx, mouseX, mouseY, partialTick);
300301

301302
// Render watermarks
302-
gfx.setColor(ColorARGB.unpackRed(DefaultColors.ELEMENT_ACTIVATED) / 255f, ColorARGB.unpackGreen(DefaultColors.ELEMENT_ACTIVATED) / 255f, ColorARGB.unpackBlue(DefaultColors.ELEMENT_ACTIVATED) / 255f, 0.8F);
303+
//gfx.setColor(ColorARGB.unpackRed(DefaultColors.ELEMENT_ACTIVATED) / 255f, ColorARGB.unpackGreen(DefaultColors.ELEMENT_ACTIVATED) / 255f, ColorARGB.unpackBlue(DefaultColors.ELEMENT_ACTIVATED) / 255f, 0.8F);
303304
RenderSystem.disableDepthTest();
304305
RenderSystem.depthMask(false);
305306
RenderSystem.enableBlend();
306307
RenderSystem.blendFunc(770, 1);
307-
gfx.blit(LOGO_LOCATION, this.logoDim.x(), this.logoDim.y(), this.logoDim.width(), this.logoDim.height(), 0.0F, 0.0F, LOGO_SIZE, LOGO_SIZE, LOGO_SIZE, LOGO_SIZE);
308+
gfx.blit(RenderType::guiTextured, LOGO_LOCATION, this.logoDim.x(), this.logoDim.y(), this.logoDim.width(), this.logoDim.height(), 0, 0, LOGO_SIZE, LOGO_SIZE, LOGO_SIZE, LOGO_SIZE);
308309
RenderSystem.defaultBlendFunc();
309310
RenderSystem.disableBlend();
310311
RenderSystem.depthMask(true);
311312
RenderSystem.enableDepthTest();
312-
gfx.setColor(1.0F, 1.0F, 1.0F, 1.0F);
313+
//gfx.setColor(1.0F, 1.0F, 1.0F, 1.0F);
313314
}
314315

315316
@Override

src/main/java/org/embeddedt/embeddium/impl/gui/frame/components/SearchTextFieldModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ private void onChanged(String newText) {
9191
}
9292
}
9393

94-
Minecraft.getInstance().tell(() -> this.mainScreen.rebuildUI());
94+
Minecraft.getInstance().schedule(() -> this.mainScreen.rebuildUI());
9595
}
9696

9797
void erase(int offset) {

src/main/java/org/embeddedt/embeddium/impl/gui/frame/tab/TabHeaderWidget.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.embeddedt.embeddium.impl.gui.frame.tab;
22

33
import com.mojang.blaze3d.platform.NativeImage;
4+
import net.minecraft.client.renderer.RenderType;
45
import org.embeddedt.embeddium.impl.Embeddium;
56
import org.embeddedt.embeddium.impl.gui.widgets.FlatButtonWidget;
67
import org.embeddedt.embeddium.api.math.Dim2i;
@@ -81,6 +82,6 @@ public void render(GuiGraphics drawContext, int mouseX, int mouseY, float delta)
8182
ResourceLocation icon = Objects.requireNonNullElse(this.logoTexture, FALLBACK_LOCATION);
8283
int fontHeight = Minecraft.getInstance().font.lineHeight;
8384
int imgY = this.dim.getCenterY() - (fontHeight / 2);
84-
drawContext.blit(icon, this.dim.x() + 5, imgY, 0.0f, 0.0f, fontHeight, fontHeight, fontHeight, fontHeight);
85+
drawContext.blit(RenderType::guiTextured, icon, this.dim.x() + 5, imgY, 0.0f, 0.0f, fontHeight, fontHeight, fontHeight, fontHeight);
8586
}
8687
}

0 commit comments

Comments
 (0)