Skip to content

Commit 8e6fc28

Browse files
1.21.4 Port
1 parent 911d8ce commit 8e6fc28

27 files changed

Lines changed: 273 additions & 146 deletions

gradle.properties

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

3-
minecraft_version=1.21.2
4-
yarn_mappings=1.21.2+build.1
5-
loader_version=0.16.7
3+
minecraft_version=1.21.4
4+
yarn_mappings=1.21.4+build.8
5+
loader_version=0.16.10
66

7-
fabric_version=0.106.1+1.21.2
7+
fabric_version=0.114.3+1.21.4
88

9-
mod_version = 0.11+1.21.2
9+
mod_version = 0.11+1.21.4
1010
maven_group = foundationgames
1111
archives_base_name = enhancedblockentities
1212

13-
modmenu_version=12.0.0-beta.1
14-
sodium_version=mc1.21.3-0.6.0-fabric
13+
modmenu_version=13.0.0
14+
sodium_version=mc1.21.4-0.6.6-fabric

src/main/java/foundationgames/enhancedblockentities/EBESetup.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ public static void setupRRPChests() {
5555
ResourceUtil.addDoubleChestModels("christmas_left", "christmas_right","christmas_chest", p);
5656
ResourceUtil.addSingleChestModels("ender", "ender_chest", p);
5757

58-
ResourceUtil.addChestItemModel(Identifier.of("models/item/chest.json"), "chest_center", p);
59-
ResourceUtil.addChestItemModel(Identifier.of("models/item/trapped_chest.json"), "trapped_chest_center", p);
58+
ResourceUtil.addChestItemDefinition("chest", "chest_center", p);
59+
ResourceUtil.addChestItemDefinition("trapped_chest", "trapped_chest_center", p);
6060
ResourceUtil.addParentModel("block/ender_chest_center", Identifier.of("item/ender_chest"), p);
6161

6262
p.addDirBlockSprites("entity/chest", "entity/chest/");

src/main/java/foundationgames/enhancedblockentities/EnhancedBlockEntities.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package foundationgames.enhancedblockentities;
22

33
import foundationgames.enhancedblockentities.client.model.ModelIdentifiers;
4+
import foundationgames.enhancedblockentities.client.model.item.EBEIsChristmasProperty;
45
import foundationgames.enhancedblockentities.client.render.SignRenderManager;
56
import foundationgames.enhancedblockentities.client.resource.template.TemplateLoader;
67
import foundationgames.enhancedblockentities.config.EBEConfig;
7-
import foundationgames.enhancedblockentities.util.DateUtil;
88
import foundationgames.enhancedblockentities.util.EBEUtil;
99
import foundationgames.enhancedblockentities.util.ResourceUtil;
1010
import foundationgames.enhancedblockentities.util.WorldUtil;
@@ -13,7 +13,7 @@
1313
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
1414
import net.fabricmc.loader.api.FabricLoader;
1515
import net.minecraft.client.MinecraftClient;
16-
import net.minecraft.client.item.ModelPredicateProviderRegistry;
16+
import net.minecraft.client.render.item.property.bool.BooleanProperties;
1717
import org.apache.logging.log4j.LogManager;
1818
import org.apache.logging.log4j.Logger;
1919

@@ -45,12 +45,13 @@ public void onInitializeClient() {
4545
init.getEntrypoint().accept((Runnable) EnhancedBlockEntities::load);
4646
}
4747

48+
BooleanProperties.ID_MAPPER.put(EBEUtil.id("ebe_is_christmas"), EBEIsChristmasProperty.CODEC);
49+
4850
WorldRenderEvents.END.register(SignRenderManager::endFrame);
4951
ClientTickEvents.END_WORLD_TICK.register(WorldUtil.EVENT_LISTENER);
5052

5153
ModelIdentifiers.init();
5254
EBESetup.setupResourceProviders();
53-
ModelPredicateProviderRegistry.register(EBEUtil.id("is_christmas"), (stack, world, entity, seed) -> DateUtil.isChristmas() ? 1 : 0);
5455

5556
load();
5657
}

src/main/java/foundationgames/enhancedblockentities/client/model/DynamicBakedModel.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
11
package foundationgames.enhancedblockentities.client.model;
22

3-
import net.fabricmc.fabric.api.renderer.v1.RendererAccess;
3+
import net.fabricmc.fabric.api.renderer.v1.Renderer;
44
import net.fabricmc.fabric.api.renderer.v1.material.RenderMaterial;
55
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
66
import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
77
import net.fabricmc.fabric.api.renderer.v1.model.ModelHelper;
8-
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
98
import net.minecraft.block.BlockState;
109
import net.minecraft.client.render.model.BakedModel;
1110
import net.minecraft.client.render.model.BakedQuad;
12-
import net.minecraft.client.render.model.json.ModelOverrideList;
1311
import net.minecraft.client.render.model.json.ModelTransformation;
1412
import net.minecraft.client.texture.Sprite;
15-
import net.minecraft.item.ItemStack;
1613
import net.minecraft.util.math.BlockPos;
1714
import net.minecraft.util.math.Direction;
1815
import net.minecraft.util.math.random.Random;
1916
import net.minecraft.world.BlockRenderView;
2017
import org.jetbrains.annotations.Nullable;
2118

2219
import java.util.List;
20+
import java.util.function.Predicate;
2321
import java.util.function.Supplier;
2422

2523
public class DynamicBakedModel implements BakedModel, FabricBakedModel {
@@ -45,14 +43,13 @@ public boolean isVanillaAdapter() {
4543
}
4644

4745
@Override
48-
public void emitBlockQuads(BlockRenderView view, BlockState state, BlockPos blockPos, Supplier<Random> rng, RenderContext context) {
49-
QuadEmitter emitter = context.getEmitter();
46+
public void emitBlockQuads(QuadEmitter emitter, BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rng, Predicate<@Nullable Direction> cullTest) {
5047
RenderMaterial mat = null;
5148

5249
var indices = this.activeModelIndices.get();
5350
var models = this.displayedModels.get();
5451

55-
getSelector().writeModelIndices(view, state, blockPos, rng, context, indices);
52+
getSelector().writeModelIndices(view, state, pos, rng, indices);
5653
for (int i = 0; i < indices.length; i++) {
5754
int modelIndex = indices[i];
5855

@@ -63,9 +60,9 @@ public void emitBlockQuads(BlockRenderView view, BlockState state, BlockPos bloc
6360
}
6461
}
6562

66-
var renderer = RendererAccess.INSTANCE.getRenderer();
63+
var renderer = Renderer.get();
6764
if (renderer != null) {
68-
mat = renderer.materialById(RenderMaterial.MATERIAL_STANDARD);
65+
mat = renderer.materialById(RenderMaterial.STANDARD_ID);
6966
}
7067

7168
for (int i = 0; i <= 6; i++) {
@@ -79,11 +76,6 @@ public void emitBlockQuads(BlockRenderView view, BlockState state, BlockPos bloc
7976
}
8077
}
8178

82-
@Override
83-
public void emitItemQuads(ItemStack itemStack, Supplier<Random> supplier, RenderContext renderContext) {
84-
// no
85-
}
86-
8779
@Override
8880
public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction face, Random random) {
8981
return models[0].getQuads(state, face, random);
@@ -104,11 +96,6 @@ public boolean isSideLit() {
10496
return false;
10597
}
10698

107-
@Override
108-
public boolean isBuiltin() {
109-
return false;
110-
}
111-
11299
@Override
113100
public Sprite getParticleSprite() {
114101
return models[getSelector().getParticleModelIndex()].getParticleSprite();
@@ -119,11 +106,6 @@ public ModelTransformation getTransformation() {
119106
return null;
120107
}
121108

122-
@Override
123-
public ModelOverrideList getOverrides() {
124-
return null;
125-
}
126-
127109
public BakedModel[] getModels() {
128110
return models;
129111
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package foundationgames.enhancedblockentities.client.model;
22

33
import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin;
4-
import net.fabricmc.fabric.api.client.model.loading.v1.ModelResolver;
4+
import net.fabricmc.fabric.api.client.model.loading.v1.ModelModifier;
55
import net.minecraft.client.render.model.UnbakedModel;
66
import net.minecraft.util.Identifier;
77
import org.jetbrains.annotations.Nullable;
88

99
import java.util.function.Supplier;
1010

11-
public class DynamicModelProvidingPlugin implements ModelLoadingPlugin, ModelResolver {
11+
public class DynamicModelProvidingPlugin implements ModelLoadingPlugin, ModelModifier.OnLoad {
1212
private final Supplier<DynamicUnbakedModel> model;
1313
private final Identifier id;
1414

@@ -19,12 +19,12 @@ public DynamicModelProvidingPlugin(Identifier id, Supplier<DynamicUnbakedModel>
1919

2020
@Override
2121
public void initialize(ModelLoadingPlugin.Context ctx) {
22-
ctx.resolveModel().register(this);
22+
ctx.modifyModelOnLoad().register(this);
2323
}
2424

2525
@Override
26-
public @Nullable UnbakedModel resolveModel(ModelResolver.Context ctx) {
27-
if (ctx.id().equals(this.id)) return this.model.get();
28-
return null;
26+
public @Nullable UnbakedModel modifyModelOnLoad(@Nullable UnbakedModel model, ModelModifier.OnLoad.Context context) {
27+
if (context.id().equals(this.id)) return this.model.get();
28+
return model;
2929
}
3030
}

src/main/java/foundationgames/enhancedblockentities/client/model/DynamicUnbakedModel.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import net.minecraft.client.render.model.BakedModel;
44
import net.minecraft.client.render.model.Baker;
55
import net.minecraft.client.render.model.ModelBakeSettings;
6+
import net.minecraft.client.render.model.ModelTextures;
67
import net.minecraft.client.render.model.UnbakedModel;
7-
import net.minecraft.client.texture.Sprite;
8-
import net.minecraft.client.util.SpriteIdentifier;
8+
import net.minecraft.client.render.model.json.ModelTransformation;
99
import net.minecraft.util.Identifier;
1010
import org.jetbrains.annotations.Nullable;
1111

12-
import java.util.function.Function;
13-
1412
public class DynamicUnbakedModel implements UnbakedModel {
1513
private final Identifier[] models;
1614
private final ModelSelector selector;
@@ -31,10 +29,10 @@ public void resolve(Resolver resolver) {
3129
}
3230

3331
@Override
34-
public @Nullable BakedModel bake(Baker baker, Function<SpriteIdentifier, Sprite> textureGetter, ModelBakeSettings rotationContainer) {
32+
public @Nullable BakedModel bake(ModelTextures textures, Baker baker, ModelBakeSettings settings, boolean ambientOcclusion, boolean isSideLit, ModelTransformation transformation) {
3533
BakedModel[] baked = new BakedModel[models.length];
3634
for (int i = 0; i < models.length; i++) {
37-
baked[i] = baker.bake(models[i], rotationContainer);
35+
baked[i] = baker.bake(models[i], settings);
3836
}
3937
return new DynamicBakedModel(baked, selector, effects);
4038
}

src/main/java/foundationgames/enhancedblockentities/client/model/ModelSelector.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
import foundationgames.enhancedblockentities.util.DateUtil;
44
import foundationgames.enhancedblockentities.util.duck.AppearanceStateHolder;
5-
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
65
import net.minecraft.block.BlockState;
76
import net.minecraft.util.math.BlockPos;
87
import net.minecraft.util.math.random.Random;
98
import net.minecraft.world.BlockRenderView;
10-
import org.jetbrains.annotations.Nullable;
119

1210
import java.util.ArrayList;
1311
import java.util.List;
@@ -18,7 +16,7 @@ public abstract class ModelSelector {
1816

1917
public static final ModelSelector STATE_HOLDER_SELECTOR = new ModelSelector() {
2018
@Override
21-
public void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, @Nullable RenderContext ctx, int[] indices) {
19+
public void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, int[] indices) {
2220
if (view.getBlockEntity(pos) instanceof AppearanceStateHolder stateHolder) {
2321
indices[0] = stateHolder.getModelState();
2422
return;
@@ -36,7 +34,7 @@ public int getParticleModelIndex() {
3634
}
3735

3836
@Override
39-
public void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, @Nullable RenderContext ctx, int[] indices) {
37+
public void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, int[] indices) {
4038
if (view.getBlockEntity(pos) instanceof AppearanceStateHolder stateHolder) {
4139
indices[0] = stateHolder.getModelState() + this.getParticleModelIndex();
4240
return;
@@ -53,7 +51,7 @@ public int getParticleModelIndex() {
5351
return 0;
5452
}
5553

56-
public abstract void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, @Nullable RenderContext ctx, int[] indices);
54+
public abstract void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, int[] indices);
5755

5856
public final int id;
5957
public final int displayedModelCount;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package foundationgames.enhancedblockentities.client.model.item;
2+
3+
import com.mojang.serialization.MapCodec;
4+
import foundationgames.enhancedblockentities.util.DateUtil;
5+
import net.minecraft.client.render.item.property.bool.BooleanProperty;
6+
import net.minecraft.client.world.ClientWorld;
7+
import net.minecraft.entity.LivingEntity;
8+
import net.minecraft.item.ItemStack;
9+
import net.minecraft.item.ModelTransformationMode;
10+
import org.jetbrains.annotations.Nullable;
11+
12+
public record EBEIsChristmasProperty() implements BooleanProperty {
13+
public static final MapCodec<EBEIsChristmasProperty> CODEC = MapCodec.unit(new EBEIsChristmasProperty());
14+
15+
@Override
16+
public boolean getValue(ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity user, int seed, ModelTransformationMode modelTransformationMode) {
17+
return DateUtil.isChristmas();
18+
}
19+
20+
@Override
21+
public MapCodec<EBEIsChristmasProperty> getCodec() {
22+
return CODEC;
23+
}
24+
}

src/main/java/foundationgames/enhancedblockentities/client/model/misc/DecoratedPotModelSelector.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import foundationgames.enhancedblockentities.client.model.ModelIdentifiers;
44
import foundationgames.enhancedblockentities.client.model.ModelSelector;
55
import foundationgames.enhancedblockentities.util.duck.AppearanceStateHolder;
6-
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
76
import net.minecraft.block.BlockState;
87
import net.minecraft.block.DecoratedPotPattern;
98
import net.minecraft.block.DecoratedPotPatterns;
@@ -16,7 +15,6 @@
1615
import net.minecraft.util.math.MathHelper;
1716
import net.minecraft.util.math.random.Random;
1817
import net.minecraft.world.BlockRenderView;
19-
import org.jetbrains.annotations.Nullable;
2018

2119
import java.util.ArrayList;
2220
import java.util.Arrays;
@@ -58,7 +56,7 @@ public Identifier[] createModelIDs() {
5856
}
5957

6058
@Override
61-
public void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, @Nullable RenderContext ctx, int[] indices) {
59+
public void writeModelIndices(BlockRenderView view, BlockState state, BlockPos pos, Supplier<Random> rand, int[] indices) {
6260
final int patternCount = potteryPatterns.size();
6361

6462
indices[0] = IDX_BASE_POT;

src/main/java/foundationgames/enhancedblockentities/client/render/BlockEntityRenderCondition.java

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

33
import foundationgames.enhancedblockentities.EnhancedBlockEntities;
44
import foundationgames.enhancedblockentities.config.EBEConfig;
5-
import foundationgames.enhancedblockentities.mixin.SignBlockEntityRenderAccessor;
5+
import foundationgames.enhancedblockentities.mixin.AbstractSignBlockEntityRenderAccessor;
66
import foundationgames.enhancedblockentities.util.duck.AppearanceStateHolder;
77
import net.minecraft.block.entity.BlockEntity;
88
import net.minecraft.client.MinecraftClient;
@@ -33,7 +33,7 @@ public interface BlockEntityRenderCondition {
3333
SignRenderManager.renderedSigns++;
3434
return playerDistance < 80 + Math.max(0, 580 - (SignRenderManager.getRenderedSignAmount() * 0.7));
3535
}
36-
double dist = SignBlockEntityRenderAccessor.enhanced_bes$getRenderDistance();
36+
double dist = AbstractSignBlockEntityRenderAccessor.enhanced_bes$getRenderDistance();
3737
Vec3d blockPos = Vec3d.ofCenter(entity.getPos());
3838
Vec3d playerPos = MinecraftClient.getInstance().player.getPos();
3939
if (config.signTextRendering.equals("most")) {

0 commit comments

Comments
 (0)