From 37ce6b262e5c50fffd79a01eef40e27e7b3e5d29 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sun, 28 Jun 2020 00:45:33 +0200 Subject: [PATCH] Fabric port in progress --- .../api/implementations/IUpgradeableHost.java | 2 +- .../implementations/items/IMemoryCard.java | 2 +- .../api/implementations/tiles/ICrankable.java | 2 +- .../appeng/api/movable/IMovableHandler.java | 4 +- .../appeng/api/movable/IMovableRegistry.java | 10 +-- .../java/appeng/api/networking/IGridHost.java | 2 +- .../java/appeng/api/networking/IGridNode.java | 2 +- api/src/main/java/appeng/api/parts/IPart.java | 2 +- .../main/java/appeng/api/parts/IPartHost.java | 2 +- .../java/appeng/api/util/ICommonTile.java | 4 +- .../java/appeng/mixins/ModelsReloadMixin.java | 22 +++++++ .../resources/appliedenergistics2.mixins.json | 14 ++++ core/src/main/resources/fabric.mod.json | 1 + .../block/networking/CableBusBlock.java | 8 +-- .../block/paint/PaintSplotchesBakedModel.java | 28 ++++---- .../block/paint/PaintSplotchesModel.java | 8 +-- .../appeng/block/qnb/QnbFormedBakedModel.java | 40 ++++++------ .../java/appeng/block/qnb/QnbFormedModel.java | 8 +-- .../bootstrap/BlockDefinitionBuilder.java | 2 +- .../appeng/bootstrap/BlockEntityBuilder.java | 36 ++++++----- .../java/appeng/bootstrap/BlockRendering.java | 3 +- .../bootstrap/ModelsReloadCallback.java | 22 +++++++ .../TileEntityRenderingCustomizer.java | 15 +++-- .../components/IModelBakeComponent.java | 7 +- .../ITileEntityRegistrationComponent.java | 4 +- .../components/ModelOverrideComponent.java | 12 ++-- .../definitions/TileEntityDefinition.java | 2 +- .../java/appeng/client/gui/AEBaseScreen.java | 4 +- .../client/render/DelegateBakedModel.java | 34 +++++----- .../client/render/DummyFluidBakedModel.java | 16 ++--- .../DummyFluidDispatcherBakedModel.java | 24 +++---- .../client/render/DummyFluidItemModel.java | 8 +-- .../client/render/FacadeBakedItemModel.java | 14 ++-- .../render/FacadeDispatcherBakedModel.java | 6 +- .../appeng/client/render/FacadeItemModel.java | 7 +- .../client/render/TesrRenderHelper.java | 4 +- .../client/render/cablebus/CableBuilder.java | 64 +++++++++---------- .../render/cablebus/CableBusBakedModel.java | 38 +++++------ .../cablebus/CableBusBreakingParticle.java | 6 +- .../client/render/cablebus/CableBusModel.java | 12 ++-- .../render/cablebus/CableBusRenderState.java | 2 +- .../client/render/cablebus/CubeBuilder.java | 22 +++---- .../client/render/cablebus/FacadeBuilder.java | 2 +- .../P2PTunnelFrequencyBakedModel.java | 24 +++---- .../cablebus/P2PTunnelFrequencyModel.java | 10 +-- .../render/cablebus/SmartCableTextures.java | 12 ++-- .../crafting/CraftingCubeBakedModel.java | 28 ++++---- .../render/crafting/CraftingCubeModel.java | 18 +++--- .../crafting/EncodedPatternBakedModel.java | 26 ++++---- .../render/crafting/EncodedPatternModel.java | 8 +-- .../render/crafting/LightBakedModel.java | 12 ++-- .../render/crafting/MonitorBakedModel.java | 20 +++--- .../render/crafting/UnitBakedModel.java | 10 +-- .../render/model/AEInternalModelData.java | 2 +- .../client/render/model/AEModelData.java | 2 +- .../render/model/AutoRotatingBakedModel.java | 36 +++++------ .../render/model/BiometricCardBakedModel.java | 40 ++++++------ .../render/model/BiometricCardModel.java | 10 +-- .../model/ColorApplicatorBakedModel.java | 40 ++++++------ .../render/model/ColorApplicatorModel.java | 14 ++-- .../client/render/model/DriveBakedModel.java | 4 +- .../client/render/model/DriveModel.java | 8 +-- .../client/render/model/GlassBakedModel.java | 42 ++++++------ .../client/render/model/GlassModel.java | 8 +-- .../render/model/MatrixVertexTransformer.java | 4 +- .../render/model/MemoryCardBakedModel.java | 40 ++++++------ .../client/render/model/MemoryCardModel.java | 10 +-- .../render/model/SkyCompassBakedModel.java | 30 ++++----- .../client/render/model/SkyCompassModel.java | 8 +-- .../client/render/model/UVLModelLoader.java | 18 +++--- .../render/renderable/ItemRenderable.java | 4 +- .../spatial/SpatialPylonBakedModel.java | 24 +++---- .../render/spatial/SpatialPylonModel.java | 10 +-- .../client/render/tesr/InscriberTESR.java | 12 ++-- .../appeng/container/ContainerLocator.java | 6 +- .../implementations/ContainerHelper.java | 6 +- src/main/java/appeng/core/Registration.java | 17 +++-- .../client/gui/widgets/FluidSlotWidget.java | 4 +- .../client/gui/widgets/FluidTankWidget.java | 4 +- .../parts/FluidAnnihilationPlanePart.java | 2 +- .../fluids/parts/FluidFormationPlanePart.java | 2 +- .../java/appeng/me/cluster/MBCalculator.java | 6 +- .../automation/AnnihilationPlanePart.java | 2 +- .../parts/automation/FormationPlanePart.java | 2 +- .../IdentityAnnihilationPlanePart.java | 2 +- .../parts/automation/PlaneBakedModel.java | 24 +++---- .../appeng/parts/automation/PlaneModel.java | 14 ++-- .../java/appeng/parts/p2p/P2PTunnelPart.java | 2 +- .../appeng/spatial/DefaultSpatialHandler.java | 2 +- .../codechicken/lib/model/Quad.java | 6 +- .../lib/model/pipeline/BakedPipeline.java | 4 +- .../lib/model/pipeline/QuadTransformer.java | 4 +- .../java/appeng/tile/AEBaseBlockEntity.java | 15 +++-- .../tile/crafting/CraftingBlockEntity.java | 5 +- .../crafting/CraftingMonitorBlockEntity.java | 4 +- .../crafting/MolecularAssemblerRenderer.java | 4 +- .../tile/misc/PaintSplotchesBlockEntity.java | 9 ++- .../tile/networking/CableBusBlockEntity.java | 4 +- .../tile/qnb/QuantumBridgeBlockEntity.java | 12 +--- .../tile/spatial/SpatialPylonBlockEntity.java | 9 +-- .../appeng/tile/storage/DriveBlockEntity.java | 5 +- .../tile/storage/IOPortBlockEntity.java | 4 +- 102 files changed, 650 insertions(+), 591 deletions(-) create mode 100644 core/src/main/java/appeng/mixins/ModelsReloadMixin.java create mode 100644 core/src/main/resources/appliedenergistics2.mixins.json create mode 100644 src/main/java/appeng/bootstrap/ModelsReloadCallback.java diff --git a/api/src/main/java/appeng/api/implementations/IUpgradeableHost.java b/api/src/main/java/appeng/api/implementations/IUpgradeableHost.java index 8c6aa5e52..3d4015010 100644 --- a/api/src/main/java/appeng/api/implementations/IUpgradeableHost.java +++ b/api/src/main/java/appeng/api/implementations/IUpgradeableHost.java @@ -39,7 +39,7 @@ public interface IUpgradeableHost extends IConfigurableObject, ISegmentedInvento /** * the tile... * - * @return tile entity + * @return block entity */ BlockEntity getTile(); } diff --git a/api/src/main/java/appeng/api/implementations/items/IMemoryCard.java b/api/src/main/java/appeng/api/implementations/items/IMemoryCard.java index 51cd903a4..ed1529716 100644 --- a/api/src/main/java/appeng/api/implementations/items/IMemoryCard.java +++ b/api/src/main/java/appeng/api/implementations/items/IMemoryCard.java @@ -49,7 +49,7 @@ public interface IMemoryCard { * row, left to right. The second 4 the bottom row. * * @param is item - * @param settingsName unlocalized string that represents the tile entity. + * @param settingsName unlocalized string that represents the block entity. * @param data the NBT tag, refer to the normal comment for special * keys. */ diff --git a/api/src/main/java/appeng/api/implementations/tiles/ICrankable.java b/api/src/main/java/appeng/api/implementations/tiles/ICrankable.java index a9b20b151..f3390f1b4 100644 --- a/api/src/main/java/appeng/api/implementations/tiles/ICrankable.java +++ b/api/src/main/java/appeng/api/implementations/tiles/ICrankable.java @@ -33,7 +33,7 @@ import net.minecraft.util.math.Direction; * * Tiles that access other tiles that implement this method can act as Cranks. * - * This interface must be implemented by a tile entity. + * This interface must be implemented by a block entity. */ public interface ICrankable { diff --git a/api/src/main/java/appeng/api/movable/IMovableHandler.java b/api/src/main/java/appeng/api/movable/IMovableHandler.java index 1e87ac146..f196ca32d 100644 --- a/api/src/main/java/appeng/api/movable/IMovableHandler.java +++ b/api/src/main/java/appeng/api/movable/IMovableHandler.java @@ -33,8 +33,8 @@ public interface IMovableHandler { * if you return true from this, your saying you can handle the class, not that * single entity, you cannot opt out of single entities. * - * @param myClass tile entity class - * @param tile tile entity + * @param myClass block entity class + * @param tile block entity * * @return true if it can handle moving */ diff --git a/api/src/main/java/appeng/api/movable/IMovableRegistry.java b/api/src/main/java/appeng/api/movable/IMovableRegistry.java index f56c01a87..c3040acfc 100644 --- a/api/src/main/java/appeng/api/movable/IMovableRegistry.java +++ b/api/src/main/java/appeng/api/movable/IMovableRegistry.java @@ -67,7 +67,7 @@ public interface IMovableRegistry { void blacklistBlock(Block blk); /** - * White list your tile entity with the registry. + * White list your block entity with the registry. * * If you tile is handled with IMovableHandler or IMovableTile you do not need * to white list it. @@ -75,7 +75,7 @@ public interface IMovableRegistry { void whiteListTileEntity(Class c); /** - * @param te to be moved tile entity + * @param te to be moved block entity * * @return true if the tile has accepted your request to move it */ @@ -84,7 +84,7 @@ public interface IMovableRegistry { /** * tells the tile you are done moving it. * - * @param te moved tile entity + * @param te moved block entity */ void doneMoving(BlockEntity te); @@ -101,9 +101,9 @@ public interface IMovableRegistry { * * only valid after askToMove(...) = true * - * @param te tile entity + * @param te block entity * - * @return moving handler of tile entity + * @return moving handler of block entity */ IMovableHandler getHandler(BlockEntity te); diff --git a/api/src/main/java/appeng/api/networking/IGridHost.java b/api/src/main/java/appeng/api/networking/IGridHost.java index 8dbf3e19e..441f50882 100644 --- a/api/src/main/java/appeng/api/networking/IGridHost.java +++ b/api/src/main/java/appeng/api/networking/IGridHost.java @@ -34,7 +34,7 @@ import appeng.api.util.AEPartLocation; /** * Implement to create a networked {@link BlockEntity} or {@link IPart} must be - * implemented for a part, or tile entity to become part of a grid. + * implemented for a part, or block entity to become part of a grid. */ public interface IGridHost { diff --git a/api/src/main/java/appeng/api/networking/IGridNode.java b/api/src/main/java/appeng/api/networking/IGridNode.java index b8f72156e..986384a9a 100644 --- a/api/src/main/java/appeng/api/networking/IGridNode.java +++ b/api/src/main/java/appeng/api/networking/IGridNode.java @@ -55,7 +55,7 @@ public interface IGridNode { * inform the node that your IGridBlock has changed its internal state, and * force the node to update. * - * ALWAYS make sure that your tile entity is in the world, and has its node + * ALWAYS make sure that your block entity is in the world, and has its node * properly saved to be returned from the host before updating state, * * If your entity is not in the world, or if you IGridHost returns a different diff --git a/api/src/main/java/appeng/api/parts/IPart.java b/api/src/main/java/appeng/api/parts/IPart.java index 11fe8b460..6ed58a021 100644 --- a/api/src/main/java/appeng/api/parts/IPart.java +++ b/api/src/main/java/appeng/api/parts/IPart.java @@ -204,7 +204,7 @@ public interface IPart extends ICustomCableConnection { * called by the Part host to keep your part informed. * * @param host part side - * @param tile tile entity of part + * @param tile block entity of part */ void setPartHostInfo(AEPartLocation side, IPartHost host, BlockEntity tile); diff --git a/api/src/main/java/appeng/api/parts/IPartHost.java b/api/src/main/java/appeng/api/parts/IPartHost.java index b50de95f1..d71506028 100644 --- a/api/src/main/java/appeng/api/parts/IPartHost.java +++ b/api/src/main/java/appeng/api/parts/IPartHost.java @@ -115,7 +115,7 @@ public interface IPartHost extends ICustomCableConnection { DimensionalCoord getLocation(); /** - * @return the tile entity for the host, this can either be an FMP tile, or a AE + * @return the block entity for the host, this can either be an FMP tile, or a AE * tile */ BlockEntity getTile(); diff --git a/api/src/main/java/appeng/api/util/ICommonTile.java b/api/src/main/java/appeng/api/util/ICommonTile.java index 561b524f8..f41d7feb4 100644 --- a/api/src/main/java/appeng/api/util/ICommonTile.java +++ b/api/src/main/java/appeng/api/util/ICommonTile.java @@ -35,9 +35,9 @@ public interface ICommonTile { * implemented on AE's Tile Entities, Gets a list of drops that the entity will * normally drop, this doesn't include the block itself. * - * @param world world of tile entity + * @param world world of block entity * @param pos location of the block - * @param drops drops of tile entity + * @param drops drops of block entity */ void getDrops(World world, BlockPos pos, List drops); } \ No newline at end of file diff --git a/core/src/main/java/appeng/mixins/ModelsReloadMixin.java b/core/src/main/java/appeng/mixins/ModelsReloadMixin.java new file mode 100644 index 000000000..1c604a9ae --- /dev/null +++ b/core/src/main/java/appeng/mixins/ModelsReloadMixin.java @@ -0,0 +1,22 @@ +package appeng.mixins; + +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.ModelLoader; +import net.minecraft.util.Identifier; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Map; + +@Mixin(ModelLoader.class) +public class ModelsReloadMixin { + + @Inject(method = "getBakedModelMap", at = @At("RETURN")) + public void onGetBakedModelMap(CallbackInfoReturnable> ci) { + Map models = ci.getReturnValue(); + + } + +} diff --git a/core/src/main/resources/appliedenergistics2.mixins.json b/core/src/main/resources/appliedenergistics2.mixins.json new file mode 100644 index 000000000..5539fae45 --- /dev/null +++ b/core/src/main/resources/appliedenergistics2.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "appeng.mixins", + "compatibilityLevel": "JAVA_8", + "mixins": [], + "client": [ + "ModelsReloadMixin" + ], + "server": [], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/core/src/main/resources/fabric.mod.json b/core/src/main/resources/fabric.mod.json index c23d67805..5dc572b0d 100644 --- a/core/src/main/resources/fabric.mod.json +++ b/core/src/main/resources/fabric.mod.json @@ -22,6 +22,7 @@ ] }, "mixins": [ + "appliedenergistics2.mixins.json" ], "depends": { "fabricloader": ">=0.7.1", diff --git a/src/main/java/appeng/block/networking/CableBusBlock.java b/src/main/java/appeng/block/networking/CableBusBlock.java index 0f268050d..92a939fb9 100644 --- a/src/main/java/appeng/block/networking/CableBusBlock.java +++ b/src/main/java/appeng/block/networking/CableBusBlock.java @@ -33,7 +33,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleManager; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; @@ -212,7 +212,7 @@ public class CableBusBlock extends AEBaseTileBlock implemen CableBusRenderState renderState = cb.getRenderState(); // Spawn a particle for one of the particle textures - TextureAtlasSprite texture = Platform.pickRandom(cableBusModel.getParticleTextures(renderState)); + Sprite texture = Platform.pickRandom(cableBusModel.getParticleTextures(renderState)); if (texture != null) { double x = target.getHitVec().x; double y = target.getHitVec().y; @@ -244,7 +244,7 @@ public class CableBusBlock extends AEBaseTileBlock implemen CableBusRenderState renderState = cb.getRenderState(); - List textures = cableBusModel.getParticleTextures(renderState); + List textures = cableBusModel.getParticleTextures(renderState); if (!textures.isEmpty()) { // Shamelessly inspired by ParticleManager.addBlockDestroyEffects @@ -253,7 +253,7 @@ public class CableBusBlock extends AEBaseTileBlock implemen for (int l = 0; l < 4; ++l) { // Randomly select one of the textures if the cable bus has more than just one // possibility here - final TextureAtlasSprite texture = Platform.pickRandom(textures); + final Sprite texture = Platform.pickRandom(textures); final double x = pos.getX() + (j + 0.5D) / 4.0D; final double y = pos.getY() + (k + 0.5D) / 4.0D; diff --git a/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java b/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java index d18e13dc1..69351d58e 100644 --- a/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java +++ b/src/main/java/appeng/block/paint/PaintSplotchesBakedModel.java @@ -14,14 +14,14 @@ import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import appeng.client.render.cablebus.CubeBuilder; import appeng.core.AppEng; @@ -42,10 +42,10 @@ class PaintSplotchesBakedModel implements IDynamicBakedModel { private static final Material TEXTURE_PAINT3 = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new Identifier(AppEng.MOD_ID, "block/paint3")); - private final TextureAtlasSprite[] textures; + private final Sprite[] textures; - PaintSplotchesBakedModel(Function bakedTextureGetter) { - this.textures = new TextureAtlasSprite[] { bakedTextureGetter.apply(TEXTURE_PAINT1), + PaintSplotchesBakedModel(Function bakedTextureGetter) { + this.textures = new Sprite[] { bakedTextureGetter.apply(TEXTURE_PAINT1), bakedTextureGetter.apply(TEXTURE_PAINT2), bakedTextureGetter.apply(TEXTURE_PAINT3) }; } @@ -96,7 +96,7 @@ class PaintSplotchesBakedModel implements IDynamicBakedModel { pos_x = Math.max(buffer, Math.min(1.0f - buffer, pos_x)); pos_y = Math.max(buffer, Math.min(1.0f - buffer, pos_y)); - TextureAtlasSprite ico = this.textures[s.getSeed() % this.textures.length]; + Sprite ico = this.textures[s.getSeed() % this.textures.length]; builder.setTexture(ico); builder.setCustomUv(s.getSide().getOpposite(), 0, 0, 16, 16); @@ -142,32 +142,32 @@ class PaintSplotchesBakedModel implements IDynamicBakedModel { } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return true; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.textures[0]; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } diff --git a/src/main/java/appeng/block/paint/PaintSplotchesModel.java b/src/main/java/appeng/block/paint/PaintSplotchesModel.java index d3fcaff07..37847a1b8 100644 --- a/src/main/java/appeng/block/paint/PaintSplotchesModel.java +++ b/src/main/java/appeng/block/paint/PaintSplotchesModel.java @@ -10,10 +10,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -22,8 +22,8 @@ public class PaintSplotchesModel implements IModelGeometry @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { return new PaintSplotchesBakedModel(spriteGetter); } diff --git a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java index ebca7b50a..bb770f171 100644 --- a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java +++ b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java @@ -16,14 +16,14 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.AEApi; import appeng.client.render.cablebus.CubeBuilder; @@ -58,14 +58,14 @@ class QnbFormedBakedModel implements IDynamicBakedModel { private final Block linkBlock; - private final TextureAtlasSprite linkTexture; - private final TextureAtlasSprite ringTexture; - private final TextureAtlasSprite glassCableTexture; - private final TextureAtlasSprite coveredCableTexture; - private final TextureAtlasSprite lightTexture; - private final TextureAtlasSprite lightCornerTexture; + private final Sprite linkTexture; + private final Sprite ringTexture; + private final Sprite glassCableTexture; + private final Sprite coveredCableTexture; + private final Sprite lightTexture; + private final Sprite lightCornerTexture; - public QnbFormedBakedModel(BakedModel baseModel, Function bakedTextureGetter) { + public QnbFormedBakedModel(BakedModel baseModel, Function bakedTextureGetter) { this.baseModel = baseModel; this.linkTexture = bakedTextureGetter.apply(TEXTURE_LINK); this.ringTexture = bakedTextureGetter.apply(TEXTURE_RING); @@ -161,8 +161,8 @@ class QnbFormedBakedModel implements IDynamicBakedModel { return builder.getOutput(); } - private void renderCableAt(CubeBuilder builder, float thickness, TextureAtlasSprite texture, float pull, - Set connections) { + private void renderCableAt(CubeBuilder builder, float thickness, Sprite texture, float pull, + Set connections) { builder.setTexture(texture); if (connections.contains(Direction.WEST)) { @@ -191,32 +191,32 @@ class QnbFormedBakedModel implements IDynamicBakedModel { } @Override - public boolean isAmbientOcclusion() { - return this.baseModel.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.baseModel.useAmbientOcclusion(); } @Override - public boolean isGui3d() { + public boolean hasDepth() { return true; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { - return this.baseModel.getParticleTexture(); + public Sprite getSprite() { + return this.baseModel.getSprite(); } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { return this.baseModel.getOverrides(); } diff --git a/src/main/java/appeng/block/qnb/QnbFormedModel.java b/src/main/java/appeng/block/qnb/QnbFormedModel.java index 43727d6a6..9b8639bca 100644 --- a/src/main/java/appeng/block/qnb/QnbFormedModel.java +++ b/src/main/java/appeng/block/qnb/QnbFormedModel.java @@ -10,10 +10,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -26,8 +26,8 @@ public class QnbFormedModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { BakedModel ringModel = bakery.getBakedModel(MODEL_RING, modelTransform, spriteGetter); return new QnbFormedBakedModel(ringModel, spriteGetter); } diff --git a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java index a7d90b5c1..335511e7d 100644 --- a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java @@ -152,7 +152,7 @@ class BlockDefinitionBuilder implements IBlockBuilder { this.bootstrapComponents.forEach(component -> this.factory.addBootstrapComponent(component.apply(block, item))); if (this.tileEntityDefinition != null) { - // Tell the tile entity definition about the block we've registered + // Tell the block entity definition about the block we've registered this.tileEntityDefinition.addBlock(block); } diff --git a/src/main/java/appeng/bootstrap/BlockEntityBuilder.java b/src/main/java/appeng/bootstrap/BlockEntityBuilder.java index fb4ecbf9a..27d97909d 100644 --- a/src/main/java/appeng/bootstrap/BlockEntityBuilder.java +++ b/src/main/java/appeng/bootstrap/BlockEntityBuilder.java @@ -11,10 +11,11 @@ import com.google.common.base.Preconditions; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; import net.minecraft.block.Block; import net.minecraft.block.entity.BlockEntityType; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.client.registry.ClientRegistry; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; import appeng.api.features.AEFeature; import appeng.block.AEBaseTileBlock; @@ -28,7 +29,7 @@ import appeng.tile.AEBaseBlockEntity; import appeng.util.Platform; /** - * Used to define our tile entities and all of their properties that are + * Used to define our block entities and all of their properties that are * relevant to registering them. * * @param @@ -37,27 +38,26 @@ public class BlockEntityBuilder { private final FeatureFactory factory; - private final String registryName; + private final Identifier id; - // The tile entity class + // The block entity class private final Class tileClass; private BlockEntityType type; - // The factory for creating tile entity objects + // The factory for creating block entity objects private final Function, T> supplier; - @Environment(EnvType.CLIENT) private TileEntityRendering tileEntityRendering; private final List blocks = new ArrayList<>(); private final EnumSet features = EnumSet.noneOf(AEFeature.class); - public BlockEntityBuilder(FeatureFactory factory, String registryName, Class tileClass, + public BlockEntityBuilder(FeatureFactory factory, String id, Class tileClass, Function, T> supplier) { this.factory = factory; - this.registryName = registryName; + this.id = AppEng.makeId(id); this.tileClass = tileClass; this.supplier = supplier; @@ -78,22 +78,22 @@ public class BlockEntityBuilder { } public BlockEntityBuilder rendering(TileEntityRenderingCustomizer customizer) { - DistExecutor.runWhenOn(EnvType.CLIENT, () -> () -> customizer.customize(tileEntityRendering)); + customizer.customize(tileEntityRendering); return this; } @SuppressWarnings("unchecked") public TileEntityDefinition build() { - this.factory.addBootstrapComponent((ITileEntityRegistrationComponent) registry -> { + this.factory.addBootstrapComponent((ITileEntityRegistrationComponent) () -> { if (blocks.isEmpty()) { - throw new IllegalStateException("No blocks make use of this tile entity: " + tileClass); + throw new IllegalStateException("No blocks make use of this block entity: " + tileClass); } Supplier factory = () -> supplier.apply(type); type = BlockEntityType.Builder.create(factory, blocks.toArray(new Block[0])).build(null); - type.setRegistryName(AppEng.MOD_ID, registryName); - registry.register(type); + + Registry.register(Registry.BLOCK_ENTITY_TYPE, id, type); AEBaseBlockEntity.registerTileItem(tileClass, new BlockStackSrc(blocks.get(0), ActivityState.Enabled)); @@ -103,9 +103,11 @@ public class BlockEntityBuilder { baseTileBlock.setTileEntity(tileClass, factory); } } - }); - DistExecutor.runWhenOn(EnvType.CLIENT, () -> this::buildClient); + + if (Platform.hasClientClasses()) { + buildClient(); + } return new TileEntityDefinition(this::addBlock); @@ -115,7 +117,7 @@ public class BlockEntityBuilder { private void buildClient() { this.factory.addBootstrapComponent((IClientSetupComponent) () -> { if (tileEntityRendering.tileEntityRenderer != null) { - ClientRegistry.bindTileEntityRenderer(type, tileEntityRendering.tileEntityRenderer); + BlockEntityRendererRegistry.INSTANCE.register(type, tileEntityRendering.tileEntityRenderer); } }); } diff --git a/src/main/java/appeng/bootstrap/BlockRendering.java b/src/main/java/appeng/bootstrap/BlockRendering.java index ef7b36ec7..17125a5b0 100644 --- a/src/main/java/appeng/bootstrap/BlockRendering.java +++ b/src/main/java/appeng/bootstrap/BlockRendering.java @@ -76,13 +76,12 @@ class BlockRendering implements IBlockRendering { if (this.modelCustomizer != null) { factory.addModelOverride(id.getPath(), this.modelCustomizer); } else if (block instanceof AEBaseTileBlock) { - // This is a default rotating model if the base-block uses an AE tile entity + // This is a default rotating model if the base-block uses an AE block entity // which exposes UP/FRONT as // extended props factory.addModelOverride(id.getPath(), (l, m) -> new AutoRotatingBakedModel(m)); } - // TODO : 1.12 if (this.blockColor != null) { factory.addBootstrapComponent(new BlockColorComponent(block, this.blockColor)); } diff --git a/src/main/java/appeng/bootstrap/ModelsReloadCallback.java b/src/main/java/appeng/bootstrap/ModelsReloadCallback.java new file mode 100644 index 000000000..616e9dc54 --- /dev/null +++ b/src/main/java/appeng/bootstrap/ModelsReloadCallback.java @@ -0,0 +1,22 @@ +package appeng.bootstrap; + +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.event.EventFactory; +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.util.Identifier; + +import java.util.Map; + +@FunctionalInterface +public interface ModelsReloadCallback { + + Event EVENT = EventFactory.createArrayBacked(ModelsReloadCallback.class, + (listeners) -> (loadedModels) -> { + for (ModelsReloadCallback listener : listeners) { + listener.onModelsReloaded(loadedModels); + } + }); + + void onModelsReloaded(Map loadedModels); + +} diff --git a/src/main/java/appeng/bootstrap/TileEntityRenderingCustomizer.java b/src/main/java/appeng/bootstrap/TileEntityRenderingCustomizer.java index 56dc11b35..6965118e2 100644 --- a/src/main/java/appeng/bootstrap/TileEntityRenderingCustomizer.java +++ b/src/main/java/appeng/bootstrap/TileEntityRenderingCustomizer.java @@ -18,19 +18,20 @@ package appeng.bootstrap; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; - import appeng.tile.AEBaseBlockEntity; /** - * A callback that allows the rendering of a tile entity to be customized. Sadly + * A callback that allows the rendering of a block entity to be customized. Sadly * this class is required and no lambdas can be used due to them not being able * to be annotated with @OnlyIn(CLIENT). */ -public abstract class TileEntityRenderingCustomizer { +public interface TileEntityRenderingCustomizer { - @Environment(EnvType.CLIENT) - public abstract void customize(TileEntityRendering rendering); + /** + * Declared as a default method because we will carve out the implementations that + * override this method on the Server side. + */ + default void customize(TileEntityRendering rendering) { + } } diff --git a/src/main/java/appeng/bootstrap/components/IModelBakeComponent.java b/src/main/java/appeng/bootstrap/components/IModelBakeComponent.java index 5190f74be..4466ce2b4 100644 --- a/src/main/java/appeng/bootstrap/components/IModelBakeComponent.java +++ b/src/main/java/appeng/bootstrap/components/IModelBakeComponent.java @@ -1,11 +1,14 @@ package appeng.bootstrap.components; -import net.minecraftforge.client.event.ModelBakeEvent; +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.util.Identifier; import appeng.bootstrap.IBootstrapComponent; +import java.util.Map; + public interface IModelBakeComponent extends IBootstrapComponent { - void onModelBakeEvent(ModelBakeEvent event); + void onModelsReloaded(Map loadedModels); } diff --git a/src/main/java/appeng/bootstrap/components/ITileEntityRegistrationComponent.java b/src/main/java/appeng/bootstrap/components/ITileEntityRegistrationComponent.java index 498a055b5..b6312bbf1 100644 --- a/src/main/java/appeng/bootstrap/components/ITileEntityRegistrationComponent.java +++ b/src/main/java/appeng/bootstrap/components/ITileEntityRegistrationComponent.java @@ -1,11 +1,9 @@ package appeng.bootstrap.components; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraftforge.registries.IForgeRegistry; import appeng.bootstrap.IBootstrapComponent; @FunctionalInterface public interface ITileEntityRegistrationComponent extends IBootstrapComponent { - void register(IForgeRegistry> registry); + void register(); } diff --git a/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java b/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java index aa8418568..db5246ea1 100644 --- a/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java +++ b/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java @@ -28,7 +28,6 @@ import com.google.common.collect.Sets; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.util.Identifier; -import net.minecraftforge.client.event.ModelBakeEvent; import appeng.core.AppEng; @@ -42,17 +41,16 @@ public class ModelOverrideComponent implements IModelBakeComponent { } @Override - public void onModelBakeEvent(final ModelBakeEvent event) { - Map modelRegistry = event.getModelRegistry(); - Set keys = Sets.newHashSet(modelRegistry.keySet()); - BakedModel missingModel = modelRegistry.get(ModelLoader.MISSING); + public void onModelsReloaded(final Map loadedModels) { + Set keys = Sets.newHashSet(loadedModels.keySet()); + BakedModel missingModel = loadedModels.get(ModelLoader.MISSING); for (Identifier location : keys) { if (!location.getNamespace().equals(AppEng.MOD_ID)) { continue; } - BakedModel orgModel = modelRegistry.get(location); + BakedModel orgModel = loadedModels.get(location); // Don't customize the missing model. This causes Forge to swallow exceptions if (orgModel == missingModel) { @@ -64,7 +62,7 @@ public class ModelOverrideComponent implements IModelBakeComponent { BakedModel newModel = customizer.apply(location, orgModel); if (newModel != orgModel) { - modelRegistry.put(location, newModel); + loadedModels.put(location, newModel); } } } diff --git a/src/main/java/appeng/bootstrap/definitions/TileEntityDefinition.java b/src/main/java/appeng/bootstrap/definitions/TileEntityDefinition.java index b53daebf4..44adfa4f2 100644 --- a/src/main/java/appeng/bootstrap/definitions/TileEntityDefinition.java +++ b/src/main/java/appeng/bootstrap/definitions/TileEntityDefinition.java @@ -27,7 +27,7 @@ import net.minecraft.block.Block; */ public class TileEntityDefinition { - // To be notified when a Block declares that it uses this tile entity + // To be notified when a Block declares that it uses this block entity private final Consumer addBlockListener; public TileEntityDefinition(Consumer addBlockListener) { diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index 4e3131636..f1712a2a2 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -31,6 +31,7 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.texture.Sprite; import org.lwjgl.glfw.GLFW; import org.lwjgl.opengl.GL11; @@ -41,7 +42,6 @@ import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.util.InputMappings; import net.minecraft.entity.player.PlayerEntity; @@ -647,7 +647,7 @@ public abstract class AEBaseScreen extends ContainerS FluidAttributes fluidAttributes = fluid.getAttributes(); bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); Identifier fluidStillTexture = fluidAttributes.getStillTexture(fs.getFluidStack()); - final TextureAtlasSprite sprite = getMinecraft() + final Sprite sprite = getMinecraft() .getAtlasSpriteGetter(AtlasTexture.LOCATION_BLOCKS_TEXTURE).apply(fluidStillTexture); // Set color for dynamic fluids diff --git a/src/main/java/appeng/client/render/DelegateBakedModel.java b/src/main/java/appeng/client/render/DelegateBakedModel.java index a8f4fa41c..a854f2834 100644 --- a/src/main/java/appeng/client/render/DelegateBakedModel.java +++ b/src/main/java/appeng/client/render/DelegateBakedModel.java @@ -24,13 +24,13 @@ import java.util.Random; import javax.annotation.Nullable; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; public abstract class DelegateBakedModel implements BakedModel { @@ -47,44 +47,44 @@ public abstract class DelegateBakedModel implements BakedModel { } @Override - public boolean func_230044_c_() { - return baseModel.func_230044_c_(); + public boolean isSideLit() { + return baseModel.isSideLit(); } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { return baseModel.getOverrides(); } @Override - public BakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack mat) { + public BakedModel handlePerspective(ModelTransformation.TransformType cameraTransformType, MatrixStack mat) { baseModel.handlePerspective(cameraTransformType, mat); return this; } @Override - public TextureAtlasSprite getParticleTexture() { - return this.baseModel.getParticleTexture(); + public Sprite getSprite() { + return this.baseModel.getSprite(); } @Override - public ItemCameraTransforms getItemCameraTransforms() { - return this.baseModel.getItemCameraTransforms(); + public ModelTransformation getTransformation() { + return this.baseModel.getTransformation(); } @Override - public boolean isAmbientOcclusion() { - return this.baseModel.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.baseModel.useAmbientOcclusion(); } @Override - public boolean isGui3d() { - return this.baseModel.isGui3d(); + public boolean hasDepth() { + return this.baseModel.hasDepth(); } @Override - public boolean isBuiltInRenderer() { - return this.baseModel.isBuiltInRenderer(); + public boolean isBuiltin() { + return this.baseModel.isBuiltin(); } public BakedModel getBaseModel() { diff --git a/src/main/java/appeng/client/render/DummyFluidBakedModel.java b/src/main/java/appeng/client/render/DummyFluidBakedModel.java index 92ad245ab..20aff0fe7 100644 --- a/src/main/java/appeng/client/render/DummyFluidBakedModel.java +++ b/src/main/java/appeng/client/render/DummyFluidBakedModel.java @@ -28,8 +28,8 @@ import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; /** @@ -50,32 +50,32 @@ public class DummyFluidBakedModel implements BakedModel { } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return null; } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { return null; } } diff --git a/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java b/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java index 4f8982bee..030866aff 100644 --- a/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java +++ b/src/main/java/appeng/client/render/DummyFluidDispatcherBakedModel.java @@ -29,13 +29,13 @@ import alexiil.mc.lib.attributes.fluid.volume.FluidVolume; import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.renderer.TransformationMatrix; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.render.model.ItemOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.entity.LivingEntity; import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemStack; @@ -53,10 +53,10 @@ import appeng.fluids.items.FluidDummyItem; * Override List is used to accomplish this. */ public class DummyFluidDispatcherBakedModel extends DelegateBakedModel { - private final Function bakedTextureGetter; + private final Function bakedTextureGetter; public DummyFluidDispatcherBakedModel(BakedModel baseModel, - Function bakedTextureGetter) { + Function bakedTextureGetter) { super(baseModel); this.bakedTextureGetter = bakedTextureGetter; } @@ -68,23 +68,23 @@ public class DummyFluidDispatcherBakedModel extends DelegateBakedModel { } @Override - public boolean isGui3d() { - return this.getBaseModel().isGui3d(); + public boolean hasDepth() { + return this.getBaseModel().hasDepth(); } @Override - public boolean func_230044_c_() { - return getBaseModel().func_230044_c_(); + public boolean isSideLit() { + return getBaseModel().isSideLit(); } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public ItemOverrideList getOverrides() { - return new ItemOverrideList() { + public ModelOverrideList getOverrides() { + return new ModelOverrideList() { @Override public BakedModel getModelWithOverrides(BakedModel originalModel, ItemStack stack, World world, LivingEntity entity) { @@ -102,7 +102,7 @@ public class DummyFluidDispatcherBakedModel extends DelegateBakedModel { FluidAttributes attributes = fluidStack.getFluid().getAttributes(); Identifier stillTexture = attributes.getStillTexture(fluidStack); Material stillMaterial = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, stillTexture); - TextureAtlasSprite sprite = DummyFluidDispatcherBakedModel.this.bakedTextureGetter.apply(stillMaterial); + Sprite sprite = DummyFluidDispatcherBakedModel.this.bakedTextureGetter.apply(stillMaterial); if (sprite == null) { return new DummyFluidBakedModel(ImmutableList.of()); } diff --git a/src/main/java/appeng/client/render/DummyFluidItemModel.java b/src/main/java/appeng/client/render/DummyFluidItemModel.java index 8e6c0ccdc..be9bc786a 100644 --- a/src/main/java/appeng/client/render/DummyFluidItemModel.java +++ b/src/main/java/appeng/client/render/DummyFluidItemModel.java @@ -28,10 +28,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -49,8 +49,8 @@ public class DummyFluidItemModel implements IModelGeometry @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { BakedModel bakedBaseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); return new DummyFluidDispatcherBakedModel(bakedBaseModel, spriteGetter); diff --git a/src/main/java/appeng/client/render/FacadeBakedItemModel.java b/src/main/java/appeng/client/render/FacadeBakedItemModel.java index 71a9cddb3..ca43a7b2c 100644 --- a/src/main/java/appeng/client/render/FacadeBakedItemModel.java +++ b/src/main/java/appeng/client/render/FacadeBakedItemModel.java @@ -28,11 +28,11 @@ import javax.annotation.Nullable; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.EmptyModelData; -import net.minecraftforge.client.model.data.IModelData; + import appeng.client.render.cablebus.FacadeBuilder; @@ -75,22 +75,22 @@ public class FacadeBakedItemModel extends DelegateBakedModel { } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java b/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java index 55ab1d2d1..2d67bc094 100644 --- a/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java +++ b/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java @@ -21,7 +21,7 @@ package appeng.client.render; import java.util.Objects; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -47,8 +47,8 @@ public class FacadeDispatcherBakedModel extends DelegateBakedModel { } @Override - public ItemOverrideList getOverrides() { - return new ItemOverrideList() { + public ModelOverrideList getOverrides() { + return new ModelOverrideList() { @Override public BakedModel getModelWithOverrides(BakedModel originalModel, ItemStack stack, World world, LivingEntity entity) { diff --git a/src/main/java/appeng/client/render/FacadeItemModel.java b/src/main/java/appeng/client/render/FacadeItemModel.java index e21545bc7..7d0441247 100644 --- a/src/main/java/appeng/client/render/FacadeItemModel.java +++ b/src/main/java/appeng/client/render/FacadeItemModel.java @@ -25,7 +25,8 @@ import java.util.function.Function; import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.*; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -44,8 +45,8 @@ public class FacadeItemModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { BakedModel bakedBaseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); FacadeBuilder facadeBuilder = new FacadeBuilder(); diff --git a/src/main/java/appeng/client/render/TesrRenderHelper.java b/src/main/java/appeng/client/render/TesrRenderHelper.java index f7ad07487..7a6be96fc 100644 --- a/src/main/java/appeng/client/render/TesrRenderHelper.java +++ b/src/main/java/appeng/client/render/TesrRenderHelper.java @@ -24,7 +24,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.Vector3f; -import net.minecraft.client.render.model.ItemCameraTransforms; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Direction; @@ -92,7 +92,7 @@ public class TesrRenderHelper { // effect at least from head-on matrixStack.scale(scale, scale, 0.0002f); - MinecraftClient.getInstance().getItemRenderer().renderItem(itemStack, ItemCameraTransforms.TransformType.GUI, + MinecraftClient.getInstance().getItemRenderer().renderItem(itemStack, ModelTransformation.TransformType.GUI, combinedLightIn, OverlayTexture.NO_OVERLAY, matrixStack, buffers); matrixStack.pop(); diff --git a/src/main/java/appeng/client/render/cablebus/CableBuilder.java b/src/main/java/appeng/client/render/cablebus/CableBuilder.java index 2f958e9d6..3ea96a9fb 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/CableBuilder.java @@ -28,7 +28,7 @@ import java.util.function.Function; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.Material; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; import net.minecraft.util.Identifier; @@ -42,18 +42,18 @@ import appeng.core.AppEng; class CableBuilder { // Textures for the cable core types, one per type/color pair - private final EnumMap> coreTextures; + private final EnumMap> coreTextures; // Textures for rendering the actual connection cubes, one per type/color pair - private final EnumMap> connectionTextures; + private final EnumMap> connectionTextures; private final SmartCableTextures smartCableTextures; - CableBuilder(Function bakedTextureGetter) { + CableBuilder(Function bakedTextureGetter) { this.coreTextures = new EnumMap<>(CableCoreType.class); for (CableCoreType type : CableCoreType.values()) { - EnumMap colorTextures = new EnumMap<>(AEColor.class); + EnumMap colorTextures = new EnumMap<>(AEColor.class); for (AEColor color : AEColor.values()) { colorTextures.put(color, bakedTextureGetter.apply(type.getTexture(color))); @@ -65,7 +65,7 @@ class CableBuilder { this.connectionTextures = new EnumMap<>(AECableType.class); for (AECableType type : AECableType.VALIDCABLES) { - EnumMap colorTextures = new EnumMap<>(AEColor.class); + EnumMap colorTextures = new EnumMap<>(AEColor.class); for (AEColor color : AEColor.values()) { colorTextures.put(color, bakedTextureGetter.apply(getConnectionTexture(type, color))); @@ -128,7 +128,7 @@ class CableBuilder { public void addCableCore(CableCoreType coreType, AEColor color, List quadsOut) { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.coreTextures.get(coreType).get(color); + Sprite texture = this.coreTextures.get(coreType).get(color); cubeBuilder.setTexture(texture); switch (coreType) { @@ -153,13 +153,13 @@ class CableBuilder { // For to-machine connections, use a thicker end-cap for the connection if (connectionType != AECableType.GLASS && !cableBusAdjacent) { - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); cubeBuilder.setTexture(texture); this.addBigCoveredCableSizedCube(facing, cubeBuilder); } - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.GLASS).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.GLASS).get(cableColor); cubeBuilder.setTexture(texture); switch (facing) { @@ -192,7 +192,7 @@ class CableBuilder { // and its ends will always be covered by something cubeBuilder.setDrawFaces(EnumSet.complementOf(EnumSet.of(facing, facing.getOpposite()))); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.GLASS).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.GLASS).get(cableColor); cubeBuilder.setTexture(texture); switch (facing) { @@ -221,7 +221,7 @@ class CableBuilder { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.GLASS).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.GLASS).get(cableColor); cubeBuilder.setTexture(texture); switch (facing) { @@ -254,7 +254,7 @@ class CableBuilder { // We render all faces except the one on the connection side cubeBuilder.setDrawFaces(EnumSet.complementOf(EnumSet.of(facing))); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); cubeBuilder.setTexture(texture); // Draw a covered connection, if anything but glass is requested @@ -268,7 +268,7 @@ class CableBuilder { public void addStraightCoveredConnection(Direction facing, AEColor cableColor, List quadsOut) { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); cubeBuilder.setTexture(texture); setStraightCableUVs(cubeBuilder, facing, 5, 11); @@ -312,7 +312,7 @@ class CableBuilder { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.COVERED).get(cableColor); cubeBuilder.setTexture(texture); addCoveredCableSizedCube(facing, distanceFromEdge, cubeBuilder); @@ -330,11 +330,11 @@ class CableBuilder { // We render all faces except the one on the connection side cubeBuilder.setDrawFaces(EnumSet.complementOf(EnumSet.of(facing))); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.SMART).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.SMART).get(cableColor); cubeBuilder.setTexture(texture); - TextureAtlasSprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); - TextureAtlasSprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); + Sprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); + Sprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); // For to-machine connections, use a thicker end-cap for the connection if (connectionType != AECableType.GLASS && !cableBusAdjacent) { @@ -374,15 +374,15 @@ class CableBuilder { List quadsOut) { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.SMART).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.SMART).get(cableColor); cubeBuilder.setTexture(texture); setStraightCableUVs(cubeBuilder, facing, 5, 11); addStraightCoveredCableSizedCube(facing, cubeBuilder); - TextureAtlasSprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); - TextureAtlasSprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); + Sprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); + Sprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); // Render the channel indicators brightly lit at night cubeBuilder.setRenderFullBright(true); @@ -407,13 +407,13 @@ class CableBuilder { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.SMART).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.SMART).get(cableColor); cubeBuilder.setTexture(texture); addCoveredCableSizedCube(facing, distanceFromEdge, cubeBuilder); - TextureAtlasSprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); - TextureAtlasSprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); + Sprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); + Sprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); // Render the channel indicators brightly lit at night cubeBuilder.setRenderFullBright(true); @@ -442,7 +442,7 @@ class CableBuilder { // We render all faces except the one on the connection side cubeBuilder.setDrawFaces(EnumSet.complementOf(EnumSet.of(facing))); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.DENSE_COVERED).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.DENSE_COVERED).get(cableColor); cubeBuilder.setTexture(texture); addDenseCableSizedCube(facing, cubeBuilder); @@ -472,7 +472,7 @@ class CableBuilder { // We render all faces except the one on the connection side cubeBuilder.setDrawFaces(EnumSet.complementOf(EnumSet.of(facing))); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.DENSE_SMART).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.DENSE_SMART).get(cableColor); cubeBuilder.setTexture(texture); addDenseCableSizedCube(facing, cubeBuilder); @@ -480,8 +480,8 @@ class CableBuilder { // Dense cables show used channels in groups of 4, rounded up channels = (channels + 3) / 4; - TextureAtlasSprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); - TextureAtlasSprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); + Sprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); + Sprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); // Render the channel indicators brightly lit at night cubeBuilder.setRenderFullBright(true); @@ -502,7 +502,7 @@ class CableBuilder { public void addStraightDenseCoveredConnection(Direction facing, AEColor cableColor, List quadsOut) { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.DENSE_COVERED).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.DENSE_COVERED).get(cableColor); cubeBuilder.setTexture(texture); setStraightCableUVs(cubeBuilder, facing, 5, 11); @@ -514,7 +514,7 @@ class CableBuilder { List quadsOut) { CubeBuilder cubeBuilder = new CubeBuilder(quadsOut); - TextureAtlasSprite texture = this.connectionTextures.get(AECableType.DENSE_SMART).get(cableColor); + Sprite texture = this.connectionTextures.get(AECableType.DENSE_SMART).get(cableColor); cubeBuilder.setTexture(texture); setStraightCableUVs(cubeBuilder, facing, 5, 11); @@ -524,8 +524,8 @@ class CableBuilder { // Dense cables show used channels in groups of 4, rounded up channels = (channels + 3) / 4; - TextureAtlasSprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); - TextureAtlasSprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); + Sprite oddChannel = this.smartCableTextures.getOddTextureForChannels(channels); + Sprite evenChannel = this.smartCableTextures.getEvenTextureForChannels(channels); // Render the channel indicators brightly lit at night cubeBuilder.setRenderFullBright(true); @@ -721,7 +721,7 @@ class CableBuilder { return locations; } - public TextureAtlasSprite getCoreTexture(CableCoreType coreType, AEColor color) { + public Sprite getCoreTexture(CableCoreType coreType, AEColor color) { return this.coreTextures.get(coreType).get(color); } } diff --git a/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java b/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java index 71c3579f5..2e3dfca09 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusBakedModel.java @@ -34,15 +34,15 @@ import net.minecraft.block.BlockState; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.renderer.texture.MissingTextureSprite; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.model.data.EmptyModelData; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.parts.IPartModel; import appeng.api.util.AECableType; @@ -58,10 +58,10 @@ public class CableBusBakedModel implements BakedModel { private final Map partModels; - private final TextureAtlasSprite particleTexture; + private final Sprite particleTexture; CableBusBakedModel(CableBuilder cableBuilder, FacadeBuilder facadeBuilder, - Map partModels, TextureAtlasSprite particleTexture) { + Map partModels, Sprite particleTexture) { this.cableBuilder = cableBuilder; this.facadeBuilder = facadeBuilder; this.partModels = partModels; @@ -267,11 +267,11 @@ public class CableBusBakedModel implements BakedModel { * Gets a list of texture sprites appropriate for particles (digging, etc.) * given the render state for a cable bus. */ - public List getParticleTextures(CableBusRenderState renderState) { + public List getParticleTextures(CableBusRenderState renderState) { CableCoreType coreType = CableCoreType.fromCableType(renderState.getCableType()); AEColor cableColor = renderState.getCableColor(); - List result = new ArrayList<>(); + List result = new ArrayList<>(); if (coreType != null) { result.add(this.cableBuilder.getCoreTexture(coreType, cableColor)); @@ -288,7 +288,7 @@ public class CableBusBakedModel implements BakedModel { throw new IllegalStateException("Trying to use an unregistered part model: " + model); } - TextureAtlasSprite particleTexture = bakedModel.getParticleTexture(); + Sprite particleTexture = bakedModel.getSprite(); // If a part sub-model has no particle texture (indicated by it being the // missing texture), @@ -302,43 +302,43 @@ public class CableBusBakedModel implements BakedModel { return result; } - private boolean isMissingTexture(TextureAtlasSprite particleTexture) { + private boolean isMissingTexture(Sprite particleTexture) { return particleTexture instanceof MissingTextureSprite; } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return true; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false;// TODO } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.particleTexture; } @Override - public ItemCameraTransforms getItemCameraTransforms() { - return ItemCameraTransforms.DEFAULT; + public ModelTransformation getTransformation() { + return ModelTransformation.DEFAULT; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } public static void clearCache() { diff --git a/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java b/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java index 77f2662f3..85d83e87e 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusBreakingParticle.java @@ -2,7 +2,7 @@ package appeng.client.render.cablebus; import net.minecraft.client.particle.IParticleRenderType; import net.minecraft.client.particle.SpriteTexturedParticle; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.world.World; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -16,7 +16,7 @@ public class CableBusBreakingParticle extends SpriteTexturedParticle { private final float field_217572_F; public CableBusBreakingParticle(World world, double x, double y, double z, double speedX, double speedY, - double speedZ, TextureAtlasSprite sprite) { + double speedZ, Sprite sprite) { super(world, x, y, z, speedX, speedY, speedZ); this.setSprite(sprite); this.particleGravity = 1.0F; @@ -25,7 +25,7 @@ public class CableBusBreakingParticle extends SpriteTexturedParticle { this.field_217572_F = this.rand.nextFloat() * 3.0F; } - public CableBusBreakingParticle(World world, double x, double y, double z, TextureAtlasSprite sprite) { + public CableBusBreakingParticle(World world, double x, double y, double z, Sprite sprite) { this(world, x, y, z, 0, 0, 0, sprite); } diff --git a/src/main/java/appeng/client/render/cablebus/CableBusModel.java b/src/main/java/appeng/client/render/cablebus/CableBusModel.java index fb486abb4..3cfe4f09a 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusModel.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusModel.java @@ -30,10 +30,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -55,8 +55,8 @@ public class CableBusModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { Map partModels = this.loadPartModels(bakery, spriteGetter, modelTransform); CableBuilder cableBuilder = new CableBuilder(spriteGetter); @@ -65,7 +65,7 @@ public class CableBusModel implements IModelGeometry { // This should normally not be used, but we *have* to provide a particle texture // or otherwise damage models will // crash - TextureAtlasSprite particleTexture = cableBuilder.getCoreTexture(CableCoreType.GLASS, AEColor.TRANSPARENT); + Sprite particleTexture = cableBuilder.getCoreTexture(CableCoreType.GLASS, AEColor.TRANSPARENT); return new CableBusBakedModel(cableBuilder, facadeBuilder, partModels, particleTexture); } @@ -77,7 +77,7 @@ public class CableBusModel implements IModelGeometry { } private Map loadPartModels(ModelLoader bakery, - Function spriteGetterIn, IModelTransform transformIn) { + Function spriteGetterIn, IModelTransform transformIn) { ImmutableMap.Builder result = ImmutableMap.builder(); for (Identifier location : this.partModels.getModels()) { diff --git a/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java b/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java index f59fa729f..598e9e2e6 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java +++ b/src/main/java/appeng/client/render/cablebus/CableBusRenderState.java @@ -29,7 +29,7 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.Box; import net.minecraft.util.math.BlockPos; import net.minecraft.world.ILightReader; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.data.ModelProperty; import appeng.api.parts.IPartModel; diff --git a/src/main/java/appeng/client/render/cablebus/CubeBuilder.java b/src/main/java/appeng/client/render/cablebus/CubeBuilder.java index baabe4f79..af003b1bc 100644 --- a/src/main/java/appeng/client/render/cablebus/CubeBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/CubeBuilder.java @@ -27,7 +27,7 @@ import com.google.common.base.Preconditions; import net.minecraft.client.renderer.Vector4f; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.math.Direction; @@ -40,7 +40,7 @@ public class CubeBuilder { private final List output; - private final EnumMap textures = new EnumMap<>(Direction.class); + private final EnumMap textures = new EnumMap<>(Direction.class); private EnumSet drawFaces = EnumSet.allOf(Direction.class); @@ -88,7 +88,7 @@ public class CubeBuilder { private void putFace(Direction face, float x1, float y1, float z1, float x2, float y2, float z2) { - TextureAtlasSprite texture = this.textures.get(face); + Sprite texture = this.textures.get(face); BakedQuadBuilder builder = new BakedQuadBuilder(texture); builder.setQuadOrientation(face); @@ -152,8 +152,8 @@ public class CubeBuilder { this.output.add(builder.build()); } - private UvVector getDefaultUv(Direction face, TextureAtlasSprite texture, float x1, float y1, float z1, float x2, - float y2, float z2) { + private UvVector getDefaultUv(Direction face, Sprite texture, float x1, float y1, float z1, float x2, + float y2, float z2) { UvVector uv = new UvVector(); @@ -199,8 +199,8 @@ public class CubeBuilder { return uv; } - private UvVector getStandardUv(Direction face, TextureAtlasSprite texture, float x1, float y1, float z1, float x2, - float y2, float z2) { + private UvVector getStandardUv(Direction face, Sprite texture, float x1, float y1, float z1, float x2, + float y2, float z2) { UvVector uv = new UvVector(); switch (face) { case DOWN: @@ -394,14 +394,14 @@ public class CubeBuilder { } } - public void setTexture(TextureAtlasSprite texture) { + public void setTexture(Sprite texture) { for (Direction face : Direction.values()) { this.textures.put(face, texture); } } - public void setTextures(TextureAtlasSprite up, TextureAtlasSprite down, TextureAtlasSprite north, - TextureAtlasSprite south, TextureAtlasSprite east, TextureAtlasSprite west) { + public void setTextures(Sprite up, Sprite down, Sprite north, + Sprite south, Sprite east, Sprite west) { this.textures.put(Direction.UP, up); this.textures.put(Direction.DOWN, down); this.textures.put(Direction.NORTH, north); @@ -410,7 +410,7 @@ public class CubeBuilder { this.textures.put(Direction.WEST, west); } - public void setTexture(Direction facing, TextureAtlasSprite sprite) { + public void setTexture(Direction facing, Sprite sprite) { this.textures.put(facing, sprite); } diff --git a/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java b/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java index 597119d75..07f1b02e0 100644 --- a/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/FacadeBuilder.java @@ -47,7 +47,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.ILightReader; import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.model.data.EmptyModelData; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.AEApi; import appeng.api.util.AEAxisAlignedBB; diff --git a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java index fc8830679..7115fcd7b 100644 --- a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java +++ b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyBakedModel.java @@ -11,24 +11,24 @@ import com.google.common.cache.CacheBuilder; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.util.AEColor; import appeng.util.Platform; public class P2PTunnelFrequencyBakedModel implements IDynamicBakedModel { - private final TextureAtlasSprite texture; + private final Sprite texture; private final static Cache> modelCache = CacheBuilder.newBuilder().maximumSize(100).build(); private static final int[][] QUAD_OFFSETS = new int[][] { { 4, 10, 2 }, { 10, 10, 2 }, { 4, 4, 2 }, { 10, 4, 2 } }; - public P2PTunnelFrequencyBakedModel(final TextureAtlasSprite texture) { + public P2PTunnelFrequencyBakedModel(final Sprite texture) { this.texture = texture; } @@ -86,32 +86,32 @@ public class P2PTunnelFrequencyBakedModel implements IDynamicBakedModel { } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false;// TODO } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return true; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.texture; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java index 312e38cb8..7a31759f8 100644 --- a/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java +++ b/src/main/java/appeng/client/render/cablebus/P2PTunnelFrequencyModel.java @@ -10,11 +10,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -27,10 +27,10 @@ public class P2PTunnelFrequencyModel implements IModelGeometry spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { try { - final TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); + final Sprite texture = spriteGetter.apply(TEXTURE); return new P2PTunnelFrequencyBakedModel(texture); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java b/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java index ba9d1a626..2e4a7caf0 100644 --- a/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java +++ b/src/main/java/appeng/client/render/cablebus/SmartCableTextures.java @@ -23,7 +23,7 @@ import java.util.function.Function; import net.minecraft.client.render.model.Material; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import appeng.core.AppEng; @@ -49,18 +49,18 @@ public class SmartCableTextures { // Textures used to display channels on smart cables. There's two sets of 5 // textures each, and // one of each set are composed together to get even/odd colored channels - private final TextureAtlasSprite[] textures; + private final Sprite[] textures; - public SmartCableTextures(Function bakedTextureGetter) { + public SmartCableTextures(Function bakedTextureGetter) { this.textures = Arrays.stream(SMART_CHANNELS_TEXTURES)// .map(bakedTextureGetter)// - .toArray(TextureAtlasSprite[]::new); + .toArray(Sprite[]::new); } /** * The odd variant is used for displaying channels 1-4 as in use. */ - public TextureAtlasSprite getOddTextureForChannels(int channels) { + public Sprite getOddTextureForChannels(int channels) { if (channels < 0) { return this.textures[0]; } else if (channels <= 4) { @@ -73,7 +73,7 @@ public class SmartCableTextures { /** * The odd variant is used for displaying channels 5-8 as in use. */ - public TextureAtlasSprite getEvenTextureForChannels(int channels) { + public Sprite getEvenTextureForChannels(int channels) { if (channels < 5) { return this.textures[5]; } else if (channels <= 8) { diff --git a/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java b/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java index 40c5e83be..04b7a66fc 100644 --- a/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/CraftingCubeBakedModel.java @@ -29,11 +29,11 @@ import javax.annotation.Nullable; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import appeng.client.render.cablebus.CubeBuilder; import appeng.tile.crafting.CraftingCubeModelData; @@ -47,13 +47,13 @@ import appeng.util.Platform; */ abstract class CraftingCubeBakedModel implements IDynamicBakedModel { - private final TextureAtlasSprite ringCorner; + private final Sprite ringCorner; - private final TextureAtlasSprite ringHor; + private final Sprite ringHor; - private final TextureAtlasSprite ringVer; + private final Sprite ringVer; - CraftingCubeBakedModel(TextureAtlasSprite ringCorner, TextureAtlasSprite ringHor, TextureAtlasSprite ringVer) { + CraftingCubeBakedModel(Sprite ringCorner, Sprite ringHor, Sprite ringVer) { this.ringCorner = ringCorner; this.ringHor = ringHor; this.ringVer = ringVer; @@ -256,33 +256,33 @@ abstract class CraftingCubeBakedModel implements IDynamicBakedModel { float x1, float y1, float z1, float x2, float y2, float z2); @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.ringCorner; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java b/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java index bc2378fd8..f26d8f6d4 100644 --- a/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java +++ b/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java @@ -28,11 +28,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -76,12 +76,12 @@ class CraftingCubeModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { // Retrieve our textures and pass them on to the baked model - TextureAtlasSprite ringCorner = spriteGetter.apply(RING_CORNER); - TextureAtlasSprite ringSideHor = spriteGetter.apply(RING_SIDE_HOR); - TextureAtlasSprite ringSideVer = spriteGetter.apply(RING_SIDE_VER); + Sprite ringCorner = spriteGetter.apply(RING_CORNER); + Sprite ringSideHor = spriteGetter.apply(RING_SIDE_HOR); + Sprite ringSideVer = spriteGetter.apply(RING_SIDE_VER); switch (this.type) { case UNIT: @@ -102,8 +102,8 @@ class CraftingCubeModel implements IModelGeometry { } } - private static TextureAtlasSprite getLightTexture(Function textureGetter, - AbstractCraftingUnitBlock.CraftingUnitType type) { + private static Sprite getLightTexture(Function textureGetter, + AbstractCraftingUnitBlock.CraftingUnitType type) { switch (type) { case ACCELERATOR: return textureGetter.apply(ACCELERATOR_LIGHT); diff --git a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java index d03195344..27d4b185b 100644 --- a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java @@ -4,13 +4,13 @@ import javax.annotation.Nullable; import com.google.common.collect.ImmutableMap; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.renderer.TransformationMatrix; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -25,12 +25,12 @@ import appeng.items.misc.EncodedPatternItem; * holding shift - The itemstack is being rendered in the UI (not on the ground, * etc.) * - * We do this by abusing a custom {@link ItemOverrideList} since it will be + * We do this by abusing a custom {@link ModelOverrideList} since it will be * called each frame with the itemstack that is about to be rendered. We return * a custom IBakedModel ({@link ShiftHoldingModelWrapper} if the player is * holding down shift from the override list. This custom baked model implements * {@link #doesHandlePerspectives()} and returns the crafting result model if - * the model for {@link ItemCameraTransforms.TransformType#GUI} is requested. + * the model for {@link ModelTransformation.TransformType#GUI} is requested. */ public class EncodedPatternBakedModel extends DelegateBakedModel { @@ -42,7 +42,7 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { return this.overrides; } @@ -71,12 +71,12 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { } @Override - public BakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack mat) { + public BakedModel handlePerspective(ModelTransformation.TransformType cameraTransformType, MatrixStack mat) { // No need to re-check for shift being held since this model is only handed out // in that case - if (cameraTransformType == ItemCameraTransforms.TransformType.GUI) { - ImmutableMap transforms = PerspectiveMapWrapper - .getTransforms(outputModel.getItemCameraTransforms()); + if (cameraTransformType == ModelTransformation.TransformType.GUI) { + ImmutableMap transforms = PerspectiveMapWrapper + .getTransforms(outputModel.getTransformation()); return PerspectiveMapWrapper.handlePerspective(this.outputModel, transforms, cameraTransformType, mat); } else { return getBaseModel().handlePerspective(cameraTransformType, mat); @@ -86,8 +86,8 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { // This determines diffuse lighting in the UI, and since we want to render // the outputModel in the UI, we need to use it's setting here @Override - public boolean func_230044_c_() { - return outputModel.func_230044_c_(); + public boolean isSideLit() { + return outputModel.isSideLit(); } } @@ -98,7 +98,7 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { } @Override - public BakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack mat) { + public BakedModel handlePerspective(ModelTransformation.TransformType cameraTransformType, MatrixStack mat) { return getBaseModel().handlePerspective(cameraTransformType, mat); } @@ -108,7 +108,7 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { * actually check if shift is being held, and if so, determine the crafting * output model. */ - private class CustomOverrideList extends ItemOverrideList { + private class CustomOverrideList extends ModelOverrideList { @Nullable @Override diff --git a/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java b/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java index 76747b4bf..457d5d497 100644 --- a/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java +++ b/src/main/java/appeng/client/render/crafting/EncodedPatternModel.java @@ -9,10 +9,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -36,8 +36,8 @@ public class EncodedPatternModel implements IModelGeometry @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { BakedModel baseModel = bakery.getBakedModel(this.baseModel, modelTransform, spriteGetter); return new EncodedPatternBakedModel(baseModel); } diff --git a/src/main/java/appeng/client/render/crafting/LightBakedModel.java b/src/main/java/appeng/client/render/crafting/LightBakedModel.java index 49a4d9d97..af6a42e10 100644 --- a/src/main/java/appeng/client/render/crafting/LightBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/LightBakedModel.java @@ -19,9 +19,9 @@ package appeng.client.render.crafting; import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; -import net.minecraftforge.client.model.data.IModelData; + import appeng.block.crafting.AbstractCraftingUnitBlock; import appeng.client.render.cablebus.CubeBuilder; @@ -33,12 +33,12 @@ import appeng.client.render.cablebus.CubeBuilder; */ class LightBakedModel extends CraftingCubeBakedModel { - private final TextureAtlasSprite baseTexture; + private final Sprite baseTexture; - private final TextureAtlasSprite lightTexture; + private final Sprite lightTexture; - LightBakedModel(TextureAtlasSprite ringCorner, TextureAtlasSprite ringHor, TextureAtlasSprite ringVer, - TextureAtlasSprite baseTexture, TextureAtlasSprite lightTexture) { + LightBakedModel(Sprite ringCorner, Sprite ringHor, Sprite ringVer, + Sprite baseTexture, Sprite lightTexture) { super(ringCorner, ringHor, ringVer); this.baseTexture = baseTexture; this.lightTexture = lightTexture; diff --git a/src/main/java/appeng/client/render/crafting/MonitorBakedModel.java b/src/main/java/appeng/client/render/crafting/MonitorBakedModel.java index d4fa4f235..2ff0d0d46 100644 --- a/src/main/java/appeng/client/render/crafting/MonitorBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/MonitorBakedModel.java @@ -19,9 +19,9 @@ package appeng.client.render.crafting; import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.util.AEColor; import appeng.block.crafting.CraftingMonitorBlock; @@ -38,19 +38,19 @@ import appeng.tile.crafting.CraftingMonitorModelData; */ public class MonitorBakedModel extends CraftingCubeBakedModel { - private final TextureAtlasSprite chassisTexture; + private final Sprite chassisTexture; - private final TextureAtlasSprite baseTexture; + private final Sprite baseTexture; - private final TextureAtlasSprite lightDarkTexture; + private final Sprite lightDarkTexture; - private final TextureAtlasSprite lightMediumTexture; + private final Sprite lightMediumTexture; - private final TextureAtlasSprite lightBrightTexture; + private final Sprite lightBrightTexture; - MonitorBakedModel(TextureAtlasSprite ringCorner, TextureAtlasSprite ringHor, TextureAtlasSprite ringVer, - TextureAtlasSprite chassisTexture, TextureAtlasSprite baseTexture, TextureAtlasSprite lightDarkTexture, - TextureAtlasSprite lightMediumTexture, TextureAtlasSprite lightBrightTexture) { + MonitorBakedModel(Sprite ringCorner, Sprite ringHor, Sprite ringVer, + Sprite chassisTexture, Sprite baseTexture, Sprite lightDarkTexture, + Sprite lightMediumTexture, Sprite lightBrightTexture) { super(ringCorner, ringHor, ringVer); this.chassisTexture = chassisTexture; this.baseTexture = baseTexture; diff --git a/src/main/java/appeng/client/render/crafting/UnitBakedModel.java b/src/main/java/appeng/client/render/crafting/UnitBakedModel.java index b57ceab5b..357c64346 100644 --- a/src/main/java/appeng/client/render/crafting/UnitBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/UnitBakedModel.java @@ -19,9 +19,9 @@ package appeng.client.render.crafting; import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; -import net.minecraftforge.client.model.data.IModelData; + import appeng.client.render.cablebus.CubeBuilder; @@ -30,10 +30,10 @@ import appeng.client.render.cablebus.CubeBuilder; */ class UnitBakedModel extends CraftingCubeBakedModel { - private final TextureAtlasSprite unitTexture; + private final Sprite unitTexture; - UnitBakedModel(TextureAtlasSprite ringCorner, TextureAtlasSprite ringHor, TextureAtlasSprite ringVer, - TextureAtlasSprite unitTexture) { + UnitBakedModel(Sprite ringCorner, Sprite ringHor, Sprite ringVer, + Sprite unitTexture) { super(ringCorner, ringHor, ringVer); this.unitTexture = unitTexture; } diff --git a/src/main/java/appeng/client/render/model/AEInternalModelData.java b/src/main/java/appeng/client/render/model/AEInternalModelData.java index 055c860e0..c48b18986 100644 --- a/src/main/java/appeng/client/render/model/AEInternalModelData.java +++ b/src/main/java/appeng/client/render/model/AEInternalModelData.java @@ -2,7 +2,7 @@ package appeng.client.render.model; import javax.annotation.Nullable; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.data.ModelProperty; public abstract class AEInternalModelData implements IModelData { diff --git a/src/main/java/appeng/client/render/model/AEModelData.java b/src/main/java/appeng/client/render/model/AEModelData.java index e3f7b2adb..83103e50b 100644 --- a/src/main/java/appeng/client/render/model/AEModelData.java +++ b/src/main/java/appeng/client/render/model/AEModelData.java @@ -7,7 +7,7 @@ import javax.annotation.Nullable; import com.google.common.base.Preconditions; import net.minecraft.util.math.Direction; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.data.ModelProperty; /** diff --git a/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java b/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java index 4e96710ef..7b3c21351 100644 --- a/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java +++ b/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java @@ -33,11 +33,11 @@ import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.renderer.Vector4f; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.math.Direction; @@ -45,7 +45,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3i; import net.minecraft.world.ILightReader; import net.minecraftforge.client.model.data.EmptyModelData; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; import net.minecraftforge.client.model.pipeline.IVertexConsumer; import net.minecraftforge.client.model.pipeline.QuadGatheringTransformer; @@ -114,38 +114,38 @@ public class AutoRotatingBakedModel implements BakedModel { } @Override - public boolean isAmbientOcclusion() { - return this.parent.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.parent.useAmbientOcclusion(); } @Override - public boolean isGui3d() { - return this.parent.isGui3d(); + public boolean hasDepth() { + return this.parent.hasDepth(); } @Override - public boolean func_230044_c_() { - return parent.func_230044_c_(); + public boolean isSideLit() { + return parent.isSideLit(); } @Override - public boolean isBuiltInRenderer() { - return this.parent.isBuiltInRenderer(); + public boolean isBuiltin() { + return this.parent.isBuiltin(); } @Override - public TextureAtlasSprite getParticleTexture() { - return this.parent.getParticleTexture(); + public Sprite getSprite() { + return this.parent.getSprite(); } @Override @Deprecated - public ItemCameraTransforms getItemCameraTransforms() { - return parent.getItemCameraTransforms(); + public ModelTransformation getTransformation() { + return parent.getTransformation(); } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { return parent.getOverrides(); } @@ -291,7 +291,7 @@ public class AutoRotatingBakedModel implements BakedModel { } @Override - public void setTexture(TextureAtlasSprite texture) { + public void setTexture(Sprite texture) { this.parent.setTexture(texture); } } diff --git a/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java b/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java index 8e1190324..06fb2441f 100644 --- a/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java +++ b/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java @@ -12,13 +12,13 @@ import com.google.common.cache.CacheBuilder; import com.google.common.collect.ImmutableList; import com.mojang.authlib.GameProfile; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Direction; @@ -34,7 +34,7 @@ class BiometricCardBakedModel implements BakedModel { private final BakedModel baseModel; - private final TextureAtlasSprite texture; + private final Sprite texture; private final int hash; @@ -42,11 +42,11 @@ class BiometricCardBakedModel implements BakedModel { private final ImmutableList generalQuads; - BiometricCardBakedModel(BakedModel baseModel, TextureAtlasSprite texture) { + BiometricCardBakedModel(BakedModel baseModel, Sprite texture) { this(baseModel, texture, 0, createCache()); } - private BiometricCardBakedModel(BakedModel baseModel, TextureAtlasSprite texture, int hash, + private BiometricCardBakedModel(BakedModel baseModel, Sprite texture, int hash, Cache modelCache) { this.baseModel = baseModel; this.texture = texture; @@ -110,38 +110,38 @@ class BiometricCardBakedModel implements BakedModel { } @Override - public boolean isAmbientOcclusion() { - return this.baseModel.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.baseModel.useAmbientOcclusion(); } @Override - public boolean isGui3d() { - return this.baseModel.isGui3d(); + public boolean hasDepth() { + return this.baseModel.hasDepth(); } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false;// TODO } @Override - public boolean isBuiltInRenderer() { - return this.baseModel.isBuiltInRenderer(); + public boolean isBuiltin() { + return this.baseModel.isBuiltin(); } @Override - public TextureAtlasSprite getParticleTexture() { - return this.baseModel.getParticleTexture(); + public Sprite getSprite() { + return this.baseModel.getSprite(); } @Override - public ItemCameraTransforms getItemCameraTransforms() { - return this.baseModel.getItemCameraTransforms(); + public ModelTransformation getTransformation() { + return this.baseModel.getTransformation(); } @Override - public ItemOverrideList getOverrides() { - return new ItemOverrideList() { + public ModelOverrideList getOverrides() { + return new ModelOverrideList() { @Override public BakedModel getModelWithOverrides(BakedModel originalModel, ItemStack stack, World world, LivingEntity entity) { @@ -182,7 +182,7 @@ class BiometricCardBakedModel implements BakedModel { } @Override - public BakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack mat) { + public BakedModel handlePerspective(ModelTransformation.TransformType cameraTransformType, MatrixStack mat) { baseModel.handlePerspective(cameraTransformType, mat); return this; } diff --git a/src/main/java/appeng/client/render/model/BiometricCardModel.java b/src/main/java/appeng/client/render/model/BiometricCardModel.java index 132be10dc..deeab0c11 100644 --- a/src/main/java/appeng/client/render/model/BiometricCardModel.java +++ b/src/main/java/appeng/client/render/model/BiometricCardModel.java @@ -12,11 +12,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -42,9 +42,9 @@ public class BiometricCardModel implements IModelGeometry { @Nullable @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform transformIn, - ItemOverrideList overrides, Identifier locationIn) { - TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); + Function spriteGetter, IModelTransform transformIn, + ModelOverrideList overrides, Identifier locationIn) { + Sprite texture = spriteGetter.apply(TEXTURE); BakedModel baseModel = bakery.getBakedModel(MODEL_BASE, transformIn, spriteGetter); diff --git a/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java b/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java index e84a52770..8633bc041 100644 --- a/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java +++ b/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java @@ -8,14 +8,14 @@ import java.util.Random; import javax.annotation.Nullable; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.IModelTransform; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.PerspectiveMapWrapper; import net.minecraftforge.client.model.data.EmptyModelData; @@ -30,8 +30,8 @@ class ColorApplicatorBakedModel implements BakedModel { private final List generalQuads; - ColorApplicatorBakedModel(BakedModel baseModel, IModelTransform transforms, TextureAtlasSprite texDark, - TextureAtlasSprite texMedium, TextureAtlasSprite texBright) { + ColorApplicatorBakedModel(BakedModel baseModel, IModelTransform transforms, Sprite texDark, + Sprite texMedium, Sprite texBright) { this.baseModel = baseModel; this.transforms = transforms; @@ -43,8 +43,8 @@ class ColorApplicatorBakedModel implements BakedModel { } } - private List fixQuadTint(Direction facing, TextureAtlasSprite texDark, TextureAtlasSprite texMedium, - TextureAtlasSprite texBright) { + private List fixQuadTint(Direction facing, Sprite texDark, Sprite texMedium, + Sprite texBright) { List quads = this.baseModel.getQuads(null, facing, new Random(0), EmptyModelData.INSTANCE); List result = new ArrayList<>(quads.size()); for (BakedQuad quad : quads) { @@ -78,42 +78,42 @@ class ColorApplicatorBakedModel implements BakedModel { } @Override - public boolean isAmbientOcclusion() { - return this.baseModel.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.baseModel.useAmbientOcclusion(); } @Override - public boolean isGui3d() { - return this.baseModel.isGui3d(); + public boolean hasDepth() { + return this.baseModel.hasDepth(); } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false;// TODO } @Override - public boolean isBuiltInRenderer() { - return this.baseModel.isBuiltInRenderer(); + public boolean isBuiltin() { + return this.baseModel.isBuiltin(); } @Override - public TextureAtlasSprite getParticleTexture() { - return this.baseModel.getParticleTexture(); + public Sprite getSprite() { + return this.baseModel.getSprite(); } @Override - public ItemCameraTransforms getItemCameraTransforms() { - return this.baseModel.getItemCameraTransforms(); + public ModelTransformation getTransformation() { + return this.baseModel.getTransformation(); } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { return this.baseModel.getOverrides(); } @Override - public BakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack mat) { + public BakedModel handlePerspective(ModelTransformation.TransformType cameraTransformType, MatrixStack mat) { return PerspectiveMapWrapper.handlePerspective(this, transforms, cameraTransformType, mat); } } diff --git a/src/main/java/appeng/client/render/model/ColorApplicatorModel.java b/src/main/java/appeng/client/render/model/ColorApplicatorModel.java index 64e558a4f..6f62075af 100644 --- a/src/main/java/appeng/client/render/model/ColorApplicatorModel.java +++ b/src/main/java/appeng/client/render/model/ColorApplicatorModel.java @@ -10,11 +10,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -45,13 +45,13 @@ public class ColorApplicatorModel implements IModelGeometry spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { BakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); - TextureAtlasSprite texDark = spriteGetter.apply(TEXTURE_DARK); - TextureAtlasSprite texMedium = spriteGetter.apply(TEXTURE_MEDIUM); - TextureAtlasSprite texBright = spriteGetter.apply(TEXTURE_BRIGHT); + Sprite texDark = spriteGetter.apply(TEXTURE_DARK); + Sprite texMedium = spriteGetter.apply(TEXTURE_MEDIUM); + Sprite texBright = spriteGetter.apply(TEXTURE_BRIGHT); return new ColorApplicatorBakedModel(baseModel, modelTransform, texDark, texMedium, texBright); } diff --git a/src/main/java/appeng/client/render/model/DriveBakedModel.java b/src/main/java/appeng/client/render/model/DriveBakedModel.java index 366d2148e..02264e0bc 100644 --- a/src/main/java/appeng/client/render/model/DriveBakedModel.java +++ b/src/main/java/appeng/client/render/model/DriveBakedModel.java @@ -32,7 +32,7 @@ import net.minecraft.client.renderer.Matrix4f; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.item.Item; import net.minecraft.util.math.Direction; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; import appeng.api.definitions.IItems; @@ -89,7 +89,7 @@ public class DriveBakedModel extends DelegateBakedModel { } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { // We have faces inside the chassis that are facing east, but should not receive // ambient occlusion from the east-side, but sadly this cannot be fine-tuned on // a diff --git a/src/main/java/appeng/client/render/model/DriveModel.java b/src/main/java/appeng/client/render/model/DriveModel.java index 2be6d5013..04b36bef7 100644 --- a/src/main/java/appeng/client/render/model/DriveModel.java +++ b/src/main/java/appeng/client/render/model/DriveModel.java @@ -32,10 +32,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -57,8 +57,8 @@ public class DriveModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { EnumMap cellModels = new EnumMap<>(DriveSlotCellType.class); // Load the base model and the model for each cell state. diff --git a/src/main/java/appeng/client/render/model/GlassBakedModel.java b/src/main/java/appeng/client/render/model/GlassBakedModel.java index 090489b81..0ba17360e 100644 --- a/src/main/java/appeng/client/render/model/GlassBakedModel.java +++ b/src/main/java/appeng/client/render/model/GlassBakedModel.java @@ -33,10 +33,10 @@ import com.google.common.base.Strings; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.Identifier; @@ -47,7 +47,7 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.world.BlockView; import net.minecraft.world.ILightReader; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.data.ModelDataMap; import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; @@ -83,18 +83,18 @@ class GlassBakedModel implements IDynamicBakedModel { .map(rl -> new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, rl)).toArray(Material[]::new); } - private final TextureAtlasSprite[] glassTextures; + private final Sprite[] glassTextures; - private final TextureAtlasSprite[] frameTextures; + private final Sprite[] frameTextures; - public GlassBakedModel(Function bakedTextureGetter) { - this.glassTextures = new TextureAtlasSprite[] { bakedTextureGetter.apply(TEXTURE_A), + public GlassBakedModel(Function bakedTextureGetter) { + this.glassTextures = new Sprite[] { bakedTextureGetter.apply(TEXTURE_A), bakedTextureGetter.apply(TEXTURE_B), bakedTextureGetter.apply(TEXTURE_C), bakedTextureGetter.apply(TEXTURE_D) }; // The first frame texture would be empty, so we simply leave it set to null // here - this.frameTextures = new TextureAtlasSprite[16]; + this.frameTextures = new Sprite[16]; for (int i = 0; i < TEXTURES_FRAME.length; i++) { this.frameTextures[1 + i] = bakedTextureGetter.apply(TEXTURES_FRAME[i]); } @@ -128,7 +128,7 @@ class GlassBakedModel implements IDynamicBakedModel { v /= 2; } - final TextureAtlasSprite glassTexture = this.glassTextures[texIdx]; + final Sprite glassTexture = this.glassTextures[texIdx]; // Render the glass side final List quads = new ArrayList<>(5); // At most 5 @@ -147,7 +147,7 @@ class GlassBakedModel implements IDynamicBakedModel { * indicate this. */ final int edgeBitmask = makeBitmask(glassState, side); - final TextureAtlasSprite sideSprite = this.frameTextures[edgeBitmask]; + final Sprite sideSprite = this.frameTextures[edgeBitmask]; if (sideSprite != null) { quads.add(this.createQuad(side, corners, sideSprite, 0, 0)); @@ -157,7 +157,7 @@ class GlassBakedModel implements IDynamicBakedModel { } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { // TODO: Forge: Auto-generated method stub return false; } @@ -204,13 +204,13 @@ class GlassBakedModel implements IDynamicBakedModel { return bitmask; } - private BakedQuad createQuad(Direction side, List corners, TextureAtlasSprite sprite, float uOffset, - float vOffset) { + private BakedQuad createQuad(Direction side, List corners, Sprite sprite, float uOffset, + float vOffset) { return this.createQuad(side, corners.get(0), corners.get(1), corners.get(2), corners.get(3), sprite, uOffset, vOffset); } - private BakedQuad createQuad(Direction side, Vec3d c1, Vec3d c2, Vec3d c3, Vec3d c4, TextureAtlasSprite sprite, + private BakedQuad createQuad(Direction side, Vec3d c1, Vec3d c2, Vec3d c3, Vec3d c4, Sprite sprite, float uOffset, float vOffset) { Vec3d normal = new Vec3d(side.getDirectionVec()); @@ -236,7 +236,7 @@ class GlassBakedModel implements IDynamicBakedModel { * the vertex elements had been declared in the vertex format. */ private void putVertex(BakedQuadBuilder builder, Vec3d normal, double x, double y, double z, - TextureAtlasSprite sprite, float u, float v) { + Sprite sprite, float u, float v) { VertexFormat vertexFormat = builder.getVertexFormat(); for (int e = 0; e < vertexFormat.getElements().size(); e++) { VertexFormatElement el = vertexFormat.getElements().get(e); @@ -266,27 +266,27 @@ class GlassBakedModel implements IDynamicBakedModel { } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.frameTextures[this.frameTextures.length - 1]; } diff --git a/src/main/java/appeng/client/render/model/GlassModel.java b/src/main/java/appeng/client/render/model/GlassModel.java index 44fbb565c..a41fae964 100644 --- a/src/main/java/appeng/client/render/model/GlassModel.java +++ b/src/main/java/appeng/client/render/model/GlassModel.java @@ -28,10 +28,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -43,8 +43,8 @@ public class GlassModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { return new GlassBakedModel(spriteGetter); } diff --git a/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java b/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java index 5cb2b79bb..a49cc3119 100644 --- a/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java +++ b/src/main/java/appeng/client/render/model/MatrixVertexTransformer.java @@ -22,7 +22,7 @@ import java.util.List; import net.minecraft.client.renderer.Matrix4f; import net.minecraft.client.renderer.Vector4f; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.util.math.Direction; @@ -75,7 +75,7 @@ final class MatrixVertexTransformer extends QuadGatheringTransformer { } @Override - public void setTexture(TextureAtlasSprite texture) { + public void setTexture(Sprite texture) { this.parent.setTexture(texture); } diff --git a/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java b/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java index c1b0bbf3a..9838ae991 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java @@ -11,14 +11,14 @@ import javax.annotation.Nullable; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.collect.ImmutableList; +import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Direction; @@ -37,7 +37,7 @@ class MemoryCardBakedModel implements BakedModel { private final BakedModel baseModel; - private final TextureAtlasSprite texture; + private final Sprite texture; private final AEColor[] colorCode; @@ -45,11 +45,11 @@ class MemoryCardBakedModel implements BakedModel { private final ImmutableList generalQuads; - MemoryCardBakedModel(BakedModel baseModel, TextureAtlasSprite texture) { + MemoryCardBakedModel(BakedModel baseModel, Sprite texture) { this(baseModel, texture, DEFAULT_COLOR_CODE, createCache()); } - private MemoryCardBakedModel(BakedModel baseModel, TextureAtlasSprite texture, AEColor[] hash, + private MemoryCardBakedModel(BakedModel baseModel, Sprite texture, AEColor[] hash, Cache modelCache) { this.baseModel = baseModel; this.texture = texture; @@ -95,38 +95,38 @@ class MemoryCardBakedModel implements BakedModel { } @Override - public boolean isAmbientOcclusion() { - return this.baseModel.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.baseModel.useAmbientOcclusion(); } @Override - public boolean isGui3d() { - return this.baseModel.isGui3d(); + public boolean hasDepth() { + return this.baseModel.hasDepth(); } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false;// TODO } @Override - public boolean isBuiltInRenderer() { - return this.baseModel.isBuiltInRenderer(); + public boolean isBuiltin() { + return this.baseModel.isBuiltin(); } @Override - public TextureAtlasSprite getParticleTexture() { - return this.baseModel.getParticleTexture(); + public Sprite getSprite() { + return this.baseModel.getSprite(); } @Override - public ItemCameraTransforms getItemCameraTransforms() { - return this.baseModel.getItemCameraTransforms(); + public ModelTransformation getTransformation() { + return this.baseModel.getTransformation(); } @Override - public ItemOverrideList getOverrides() { - return new ItemOverrideList() { + public ModelOverrideList getOverrides() { + return new ModelOverrideList() { @Override public BakedModel getModelWithOverrides(BakedModel originalModel, ItemStack stack, World world, LivingEntity entity) { @@ -150,7 +150,7 @@ class MemoryCardBakedModel implements BakedModel { } @Override - public BakedModel handlePerspective(ItemCameraTransforms.TransformType cameraTransformType, MatrixStack mat) { + public BakedModel handlePerspective(ModelTransformation.TransformType cameraTransformType, MatrixStack mat) { baseModel.handlePerspective(cameraTransformType, mat); return this; } diff --git a/src/main/java/appeng/client/render/model/MemoryCardModel.java b/src/main/java/appeng/client/render/model/MemoryCardModel.java index b50be037c..8feb7b2cf 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardModel.java @@ -12,11 +12,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -42,9 +42,9 @@ public class MemoryCardModel implements IModelGeometry { @Nullable @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { - TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { + Sprite texture = spriteGetter.apply(TEXTURE); BakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); diff --git a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java index 81b8db1a4..6fadddbe2 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java @@ -27,12 +27,12 @@ import javax.annotation.Nullable; import net.minecraft.block.BlockState; import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.renderer.Matrix4f; import net.minecraft.client.renderer.Quaternion; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemCameraTransforms; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -40,7 +40,7 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.client.model.data.ModelProperty; import net.minecraftforge.client.model.pipeline.BakedQuadBuilder; @@ -112,42 +112,42 @@ public class SkyCompassBakedModel implements IDynamicBakedModel { } @Override - public boolean isAmbientOcclusion() { - return this.base.isAmbientOcclusion(); + public boolean useAmbientOcclusion() { + return this.base.useAmbientOcclusion(); } @Override - public boolean isGui3d() { + public boolean hasDepth() { return true; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { - return this.base.getParticleTexture(); + public Sprite getSprite() { + return this.base.getSprite(); } @Override - public ItemCameraTransforms getItemCameraTransforms() { - return this.base.getItemCameraTransforms(); + public ModelTransformation getTransformation() { + return this.base.getTransformation(); } @Override - public ItemOverrideList getOverrides() { + public ModelOverrideList getOverrides() { /* * This handles setting the rotation of the compass when being held in hand. If * it's not held in hand, it'll animate using the spinning animation. */ - return new ItemOverrideList() { + return new ModelOverrideList() { @Override public BakedModel getModelWithOverrides(BakedModel originalModel, ItemStack stack, @Nullable World world, @Nullable LivingEntity entity) { diff --git a/src/main/java/appeng/client/render/model/SkyCompassModel.java b/src/main/java/appeng/client/render/model/SkyCompassModel.java index fdf6f2089..4f9b30a43 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassModel.java @@ -30,10 +30,10 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -54,8 +54,8 @@ public class SkyCompassModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { BakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); BakedModel pointerModel = bakery.getBakedModel(MODEL_POINTER, modelTransform, spriteGetter); return new SkyCompassBakedModel(baseModel, pointerModel); diff --git a/src/main/java/appeng/client/render/model/UVLModelLoader.java b/src/main/java/appeng/client/render/model/UVLModelLoader.java index e1d257755..fb8b97a82 100644 --- a/src/main/java/appeng/client/render/model/UVLModelLoader.java +++ b/src/main/java/appeng/client/render/model/UVLModelLoader.java @@ -34,6 +34,8 @@ import com.google.gson.JsonParseException; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.ModelLoader; +import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; @@ -48,12 +50,10 @@ import net.minecraft.client.render.model.BlockPart; import net.minecraft.client.render.model.BlockPartFace; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemCameraTransforms; import net.minecraft.client.render.model.ItemOverride; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.ItemTransformVec3f; import net.minecraft.client.render.model.Material; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.resources.IResourceManager; import net.minecraft.util.math.Direction; import net.minecraft.util.JSONUtils; @@ -87,7 +87,7 @@ public class UVLModelLoader implements IModelLoader spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { - TextureAtlasSprite particle = spriteGetter.apply(owner.resolveTexture("particle")); + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { + Sprite particle = spriteGetter.apply(owner.resolveTexture("particle")); IModelBuilder builder = IModelBuilder.of(owner, overrides, particle); for (BlockPart blockpart : parent.getElements()) { for (Direction direction : blockpart.mapFaces.keySet()) { BlockPartFace blockpartface = blockpart.mapFaces.get(direction); - TextureAtlasSprite textureatlassprite1 = spriteGetter + Sprite textureatlassprite1 = spriteGetter .apply(owner.resolveTexture(blockpartface.texture)); BakedQuad quad = BlockModel.makeBakedQuad(blockpart, blockpartface, textureatlassprite1, direction, modelTransform, modelLocation); @@ -171,7 +171,7 @@ public class UVLModelLoader implements IModelLoader implements Renderable { @@ -48,7 +48,7 @@ public class ItemRenderable implements Renderable { matrixStack.push(); } MinecraftClient.getInstance().getItemRenderer().renderItem(pair.getLeft(), - ItemCameraTransforms.TransformType.GROUND, combinedLight, combinedOverlay, matrixStack, buffers); + ModelTransformation.TransformType.GROUND, combinedLight, combinedOverlay, matrixStack, buffers); matrixStack.pop(); } } diff --git a/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java b/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java index 3bb0a4478..0de14891b 100644 --- a/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java +++ b/src/main/java/appeng/client/render/spatial/SpatialPylonBakedModel.java @@ -29,11 +29,11 @@ import com.google.common.collect.ImmutableMap; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import appeng.client.render.cablebus.CubeBuilder; import appeng.tile.spatial.SpatialPylonBlockEntity; @@ -43,9 +43,9 @@ import appeng.tile.spatial.SpatialPylonBlockEntity; */ class SpatialPylonBakedModel implements IDynamicBakedModel { - private final Map textures; + private final Map textures; - SpatialPylonBakedModel(Map textures) { + SpatialPylonBakedModel(Map textures) { this.textures = ImmutableMap.copyOf(textures); } @@ -178,32 +178,32 @@ class SpatialPylonBakedModel implements IDynamicBakedModel { } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false; } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return true; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.textures.get(SpatialPylonTextureType.DIM); } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java b/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java index 470fdac1a..9910f3627 100644 --- a/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java +++ b/src/main/java/appeng/client/render/spatial/SpatialPylonModel.java @@ -31,11 +31,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -46,9 +46,9 @@ public class SpatialPylonModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { - Map textures = new EnumMap<>(SpatialPylonTextureType.class); + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { + Map textures = new EnumMap<>(SpatialPylonTextureType.class); for (SpatialPylonTextureType type : SpatialPylonTextureType.values()) { textures.put(type, spriteGetter.apply(getTexturePath(type))); diff --git a/src/main/java/appeng/client/render/tesr/InscriberTESR.java b/src/main/java/appeng/client/render/tesr/InscriberTESR.java index e8204b10d..22582c3d8 100644 --- a/src/main/java/appeng/client/render/tesr/InscriberTESR.java +++ b/src/main/java/appeng/client/render/tesr/InscriberTESR.java @@ -4,15 +4,15 @@ package appeng.client.render.tesr; import alexiil.mc.lib.attributes.item.ItemTransferable; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Quaternion; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.model.ItemCameraTransforms; import net.minecraft.client.render.model.Material; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.inventory.container.PlayerContainer; @@ -82,7 +82,7 @@ public final class InscriberTESR extends BlockEntityRenderer - *
  • A tile entity at a given block position.
  • + *
  • A block entity at a given block position.
  • *
  • A part (i.e. cable bus part) at the side of a given block position.
  • *
  • An item held by the player.
  • * @@ -76,7 +76,7 @@ public final class ContainerLocator { public static ContainerLocator forTileEntity(BlockEntity te) { if (te.getWorld() == null) { - throw new IllegalArgumentException("Cannot open a tile entity that is not in a world"); + throw new IllegalArgumentException("Cannot open a block entity that is not in a world"); } int dimensionId = te.getWorld().getDimension().getType().getId(); return new ContainerLocator(Type.BLOCK, -1, dimensionId, te.getPos(), null); @@ -84,7 +84,7 @@ public final class ContainerLocator { public static ContainerLocator forTileEntitySide(BlockEntity te, Direction side) { if (te.getWorld() == null) { - throw new IllegalArgumentException("Cannot open a tile entity that is not in a world"); + throw new IllegalArgumentException("Cannot open a block entity that is not in a world"); } int dimensionId = te.getWorld().getDimension().getType().getId(); return new ContainerLocator(Type.PART, -1, dimensionId, te.getPos(), AEPartLocation.fromFacing(side)); diff --git a/src/main/java/appeng/container/implementations/ContainerHelper.java b/src/main/java/appeng/container/implementations/ContainerHelper.java index 656258a6e..4b344836a 100644 --- a/src/main/java/appeng/container/implementations/ContainerHelper.java +++ b/src/main/java/appeng/container/implementations/ContainerHelper.java @@ -55,7 +55,7 @@ public final class ContainerHelper { } /** - * Opens a container that is based around a single tile entity. The tile + * Opens a container that is based around a single block entity. The tile * entity's position is encoded in the packet buffer. */ public C fromNetwork(int windowId, PlayerInventory inv, PacketByteBuf packetBuf) { @@ -131,7 +131,7 @@ public final class ContainerHelper { BlockEntity tileEntity = player.world.getBlockEntity(locator.getBlockPos()); - // The tile entity itself can host a terminal (i.e. Chest!) + // The block entity itself can host a terminal (i.e. Chest!) if (interfaceClass.isInstance(tileEntity)) { return interfaceClass.cast(tileEntity); } @@ -141,7 +141,7 @@ public final class ContainerHelper { } if (tileEntity instanceof IPartHost) { - // But it could also be a part attached to the tile entity + // But it could also be a part attached to the block entity IPartHost partHost = (IPartHost) tileEntity; IPart part = partHost.getPart(locator.getSide()); if (part == null) { diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 17c58f835..6ff8dbe14 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -18,6 +18,8 @@ package appeng.core; +import appeng.bootstrap.ModelsReloadCallback; +import appeng.client.render.model.*; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.advancement.criterion.Criteria; @@ -26,6 +28,7 @@ import net.minecraft.block.entity.BlockEntityType; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.ScreenManager; import net.minecraft.client.particle.ParticleManager; +import net.minecraft.client.render.model.BakedModel; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.particles.ParticleType; @@ -75,10 +78,6 @@ import appeng.api.networking.ticking.ITickManager; import appeng.bootstrap.components.*; import appeng.client.gui.implementations.*; import appeng.client.render.effects.*; -import appeng.client.render.model.BiometricCardModel; -import appeng.client.render.model.DriveModel; -import appeng.client.render.model.MemoryCardModel; -import appeng.client.render.model.SkyCompassModel; import appeng.client.render.tesr.InscriberTESR; import appeng.client.render.tesr.SkyChestTESR; import appeng.container.AEBaseContainer; @@ -111,6 +110,8 @@ import appeng.worldgen.ChargedQuartzOreConfig; import appeng.worldgen.ChargedQuartzOreFeature; import appeng.worldgen.meteorite.MeteoriteStructure; +import java.util.Map; + final class Registration { public Registration() { @@ -593,11 +594,11 @@ final class Registration { } @Environment(EnvType.CLIENT) - public void handleModelBake(ModelBakeEvent event) { + public void onModelsReloaded(Map loadedModels) { // TODO: Do not use the internal API final ApiDefinitions definitions = Api.INSTANCE.definitions(); definitions.getRegistry().getBootstrapComponents(IModelBakeComponent.class) - .forEachRemaining(c -> c.onModelBakeEvent(event)); + .forEachRemaining(c -> c.onModelsReloaded(loadedModels)); } @Environment(EnvType.CLIENT) @@ -608,6 +609,8 @@ final class Registration { modEventBus.addListener(this::registerTextures); modEventBus.addListener(this::modelRegistryEvent); modEventBus.addListener(this::registerItemColors); - modEventBus.addListener(this::handleModelBake); + + ModelsReloadCallback.EVENT.register(this::onModelsReloaded); + } } diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java index 86e143393..5868c737a 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java @@ -6,7 +6,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.fluid.Fluid; @@ -42,7 +42,7 @@ public class FluidSlotWidget extends CustomSlotWidget { final Fluid fluid = fs.getFluid(); final FluidAttributes attributes = fluid.getAttributes(); mc.getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); - final TextureAtlasSprite sprite = mc.getAtlasSpriteGetter(AtlasTexture.LOCATION_BLOCKS_TEXTURE) + final Sprite sprite = mc.getAtlasSpriteGetter(AtlasTexture.LOCATION_BLOCKS_TEXTURE) .apply(attributes.getStillTexture(fs.getFluidStack())); // Set color for dynamic fluids diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java index 0f95ed51a..82f4e5d0c 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java @@ -24,7 +24,7 @@ import net.fabricmc.api.EnvType; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.widget.Widget; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.fluid.Fluid; import net.fabricmc.api.Environment; import net.minecraftforge.fluids.FluidAttributes; @@ -64,7 +64,7 @@ public class FluidTankWidget extends Widget implements ITooltip { MinecraftClient mc = MinecraftClient.getInstance(); mc.getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); - final TextureAtlasSprite sprite = mc.getAtlasSpriteGetter(AtlasTexture.LOCATION_BLOCKS_TEXTURE) + final Sprite sprite = mc.getAtlasSpriteGetter(AtlasTexture.LOCATION_BLOCKS_TEXTURE) .apply(attributes.getStillTexture(fluidStack.getFluidStack())); final int scaledHeight = (int) (this.height diff --git a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java index 484094d65..74e321ca1 100644 --- a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java +++ b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java @@ -20,7 +20,7 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.fluids.FluidAttributes; import appeng.api.AEApi; diff --git a/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java b/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java index 54dbd25b8..08c3ddf72 100644 --- a/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java +++ b/src/main/java/appeng/fluids/parts/FluidFormationPlanePart.java @@ -19,7 +19,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.server.world.ServerWorld; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayerFactory; import net.minecraftforge.fluids.FluidAttributes; diff --git a/src/main/java/appeng/me/cluster/MBCalculator.java b/src/main/java/appeng/me/cluster/MBCalculator.java index 86e055a07..6e39db98b 100644 --- a/src/main/java/appeng/me/cluster/MBCalculator.java +++ b/src/main/java/appeng/me/cluster/MBCalculator.java @@ -152,11 +152,11 @@ public abstract class MBCalculator { public abstract void updateTiles(IAECluster c, World w, WorldCoord min, WorldCoord max); /** - * check if the tile entities are correct for the structure. + * check if the block entities are correct for the structure. * - * @param te to be checked tile entity + * @param te to be checked block entity * - * @return true if tile entity is valid for structure + * @return true if block entity is valid for structure */ public abstract boolean isValidTile(BlockEntity te); diff --git a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java index b4db9ee48..fa2f9bce1 100644 --- a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java +++ b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java @@ -44,7 +44,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.server.world.ServerWorld; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.common.util.FakePlayerFactory; import appeng.api.AEApi; diff --git a/src/main/java/appeng/parts/automation/FormationPlanePart.java b/src/main/java/appeng/parts/automation/FormationPlanePart.java index 4d1159e92..deff88b9b 100644 --- a/src/main/java/appeng/parts/automation/FormationPlanePart.java +++ b/src/main/java/appeng/parts/automation/FormationPlanePart.java @@ -48,7 +48,7 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.server.world.ServerWorld; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.common.IPlantable; import alexiil.mc.lib.attributes.item.ItemTransferable; diff --git a/src/main/java/appeng/parts/automation/IdentityAnnihilationPlanePart.java b/src/main/java/appeng/parts/automation/IdentityAnnihilationPlanePart.java index f20305bde..c285fb54c 100644 --- a/src/main/java/appeng/parts/automation/IdentityAnnihilationPlanePart.java +++ b/src/main/java/appeng/parts/automation/IdentityAnnihilationPlanePart.java @@ -31,7 +31,7 @@ import net.minecraft.enchantment.Enchantments; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.server.world.ServerWorld; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; diff --git a/src/main/java/appeng/parts/automation/PlaneBakedModel.java b/src/main/java/appeng/parts/automation/PlaneBakedModel.java index 573795036..8c7819171 100644 --- a/src/main/java/appeng/parts/automation/PlaneBakedModel.java +++ b/src/main/java/appeng/parts/automation/PlaneBakedModel.java @@ -31,11 +31,11 @@ import com.google.common.collect.ImmutableList; import net.minecraft.block.BlockState; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.render.model.ItemOverrideList; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.render.model.json.ModelOverrideList; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.data.IDynamicBakedModel; -import net.minecraftforge.client.model.data.IModelData; + import appeng.client.render.cablebus.CubeBuilder; @@ -46,11 +46,11 @@ public class PlaneBakedModel implements IDynamicBakedModel { private static final PlaneConnections DEFAULT_PERMUTATION = PlaneConnections.of(false, false, false, false); - private final TextureAtlasSprite frontTexture; + private final Sprite frontTexture; private final Map> quads; - PlaneBakedModel(TextureAtlasSprite frontTexture, TextureAtlasSprite sidesTexture, TextureAtlasSprite backTexture) { + PlaneBakedModel(Sprite frontTexture, Sprite sidesTexture, Sprite backTexture) { this.frontTexture = frontTexture; quads = new HashMap<>(PlaneConnections.PERMUTATIONS.size()); @@ -91,32 +91,32 @@ public class PlaneBakedModel implements IDynamicBakedModel { } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @Override - public boolean isGui3d() { + public boolean hasDepth() { return false; } @Override - public boolean func_230044_c_() { + public boolean isSideLit() { return false;// TODO } @Override - public boolean isBuiltInRenderer() { + public boolean isBuiltin() { return false; } @Override - public TextureAtlasSprite getParticleTexture() { + public Sprite getSprite() { return this.frontTexture; } @Override - public ItemOverrideList getOverrides() { - return ItemOverrideList.EMPTY; + public ModelOverrideList getOverrides() { + return ModelOverrideList.EMPTY; } } diff --git a/src/main/java/appeng/parts/automation/PlaneModel.java b/src/main/java/appeng/parts/automation/PlaneModel.java index e74a8efa9..7abe58959 100644 --- a/src/main/java/appeng/parts/automation/PlaneModel.java +++ b/src/main/java/appeng/parts/automation/PlaneModel.java @@ -28,11 +28,11 @@ import com.mojang.datafixers.util.Pair; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.IModelTransform; import net.minecraft.client.render.model.IUnbakedModel; -import net.minecraft.client.render.model.ItemOverrideList; +import net.minecraft.client.render.model.json.ModelOverrideList; import net.minecraft.client.render.model.Material; import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.renderer.texture.AtlasTexture; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.util.Identifier; import net.minecraftforge.client.model.IModelConfiguration; import net.minecraftforge.client.model.geometry.IModelGeometry; @@ -54,11 +54,11 @@ public class PlaneModel implements IModelGeometry { @Override public BakedModel bake(IModelConfiguration owner, ModelLoader bakery, - Function spriteGetter, IModelTransform modelTransform, - ItemOverrideList overrides, Identifier modelLocation) { - TextureAtlasSprite frontSprite = spriteGetter.apply(this.frontTexture); - TextureAtlasSprite sidesSprite = spriteGetter.apply(this.sidesTexture); - TextureAtlasSprite backSprite = spriteGetter.apply(this.backTexture); + Function spriteGetter, IModelTransform modelTransform, + ModelOverrideList overrides, Identifier modelLocation) { + Sprite frontSprite = spriteGetter.apply(this.frontTexture); + Sprite sidesSprite = spriteGetter.apply(this.sidesTexture); + Sprite backSprite = spriteGetter.apply(this.backTexture); return new PlaneBakedModel(frontSprite, sidesSprite, backSprite); } diff --git a/src/main/java/appeng/parts/p2p/P2PTunnelPart.java b/src/main/java/appeng/parts/p2p/P2PTunnelPart.java index 9daf00b6b..2842805a9 100644 --- a/src/main/java/appeng/parts/p2p/P2PTunnelPart.java +++ b/src/main/java/appeng/parts/p2p/P2PTunnelPart.java @@ -29,7 +29,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.network.PacketByteBuf; import net.minecraft.util.Hand; import net.minecraft.util.math.Vec3d; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.AEApi; import appeng.api.config.Actionable; diff --git a/src/main/java/appeng/spatial/DefaultSpatialHandler.java b/src/main/java/appeng/spatial/DefaultSpatialHandler.java index edf135c4f..94bb05e70 100644 --- a/src/main/java/appeng/spatial/DefaultSpatialHandler.java +++ b/src/main/java/appeng/spatial/DefaultSpatialHandler.java @@ -31,7 +31,7 @@ public class DefaultSpatialHandler implements IMovableHandler { /** * never called for the default. * - * @param tile tile entity + * @param tile block entity * * @return true */ diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java index 6c721612d..49a5651e7 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/Quad.java @@ -20,7 +20,7 @@ package appeng.thirdparty.codechicken.lib.model; import net.minecraft.client.renderer.Vector3f; import net.minecraft.client.render.model.BakedQuad; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.math.Box; @@ -45,7 +45,7 @@ public class Quad implements IVertexProducer, ISmartVertexConsumer { public int tintIndex = -1; public Direction orientation; public boolean diffuseLighting = true; - public TextureAtlasSprite sprite; + public Sprite sprite; public Vertex[] vertices = new Vertex[4]; public boolean full; @@ -94,7 +94,7 @@ public class Quad implements IVertexProducer, ISmartVertexConsumer { } @Override - public void setTexture(TextureAtlasSprite texture) { + public void setTexture(Sprite texture) { this.sprite = texture; } diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/BakedPipeline.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/BakedPipeline.java index 18a434b80..8f8896d65 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/BakedPipeline.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/BakedPipeline.java @@ -24,7 +24,7 @@ import java.util.Map; import java.util.function.Consumer; import java.util.stream.Collectors; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.pipeline.IVertexConsumer; @@ -216,7 +216,7 @@ public class BakedPipeline implements ISmartVertexConsumer { } @Override - public void setTexture(TextureAtlasSprite texture) { + public void setTexture(Sprite texture) { this.check(); this.unpacker.setTexture(texture); } diff --git a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/QuadTransformer.java b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/QuadTransformer.java index 290aa4df7..230b9a166 100644 --- a/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/QuadTransformer.java +++ b/src/main/java/appeng/thirdparty/codechicken/lib/model/pipeline/QuadTransformer.java @@ -20,7 +20,7 @@ package appeng.thirdparty.codechicken.lib.model.pipeline; import javax.annotation.OverridingMethodsMustInvokeSuper; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.math.Direction; import net.minecraftforge.client.model.pipeline.IVertexConsumer; @@ -104,7 +104,7 @@ public abstract class QuadTransformer implements IVertexConsumer, ISmartVertexCo } @Override - public void setTexture(TextureAtlasSprite texture) { + public void setTexture(Sprite texture) { this.quad.setTexture(texture); } // @formatter:on diff --git a/src/main/java/appeng/tile/AEBaseBlockEntity.java b/src/main/java/appeng/tile/AEBaseBlockEntity.java index 086745671..a75f16d83 100644 --- a/src/main/java/appeng/tile/AEBaseBlockEntity.java +++ b/src/main/java/appeng/tile/AEBaseBlockEntity.java @@ -25,6 +25,7 @@ import appeng.api.util.IConfigManager; import appeng.api.util.IConfigurableObject; import appeng.api.util.IOrientable; import appeng.block.AEBaseTileBlock; +import appeng.client.render.model.AEModelData; import appeng.core.AELog; import appeng.core.features.IStackSrc; import appeng.helpers.ICustomNameObject; @@ -35,6 +36,7 @@ import appeng.util.Platform; import appeng.util.SettingsFrom; import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.block.entity.BlockEntityClientSerializable; +import net.fabricmc.fabric.api.rendering.data.v1.RenderAttachmentBlockEntity; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; @@ -56,7 +58,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -public class AEBaseBlockEntity extends BlockEntity implements IOrientable, ICommonTile, ICustomNameObject, BlockEntityClientSerializable { +public class AEBaseBlockEntity extends BlockEntity implements IOrientable, ICommonTile, ICustomNameObject, BlockEntityClientSerializable, RenderAttachmentBlockEntity { private static final ThreadLocal> DROP_NO_ITEMS = new ThreadLocal<>(); private static final Map, IStackSrc> ITEM_STACKS = new HashMap<>(); @@ -307,12 +309,12 @@ public class AEBaseBlockEntity extends BlockEntity implements IOrientable, IComm } /** - * returns the contents of the tile entity, into the world, defaults to dropping + * returns the contents of the block entity, into the world, defaults to dropping * everything in the inventory. * * @param w world * @param pos block position - * @param drops drops of tile entity + * @param drops drops of block entity */ @Override public void getDrops(final World w, final BlockPos pos, final List drops) { @@ -378,7 +380,7 @@ public class AEBaseBlockEntity extends BlockEntity implements IOrientable, IComm } /** - * Checks if this tile entity is remote (we are running on the logical client + * Checks if this block entity is remote (we are running on the logical client * side). */ public boolean isClient() { @@ -410,4 +412,9 @@ public class AEBaseBlockEntity extends BlockEntity implements IOrientable, IComm this.customName = name; } + @Override + public Object getRenderAttachmentData() { + return new AEModelData(up, forward); + } + } diff --git a/src/main/java/appeng/tile/crafting/CraftingBlockEntity.java b/src/main/java/appeng/tile/crafting/CraftingBlockEntity.java index 31bbc7f12..a5f270a65 100644 --- a/src/main/java/appeng/tile/crafting/CraftingBlockEntity.java +++ b/src/main/java/appeng/tile/crafting/CraftingBlockEntity.java @@ -34,7 +34,7 @@ import net.minecraft.block.entity.BlockEntityType; import net.minecraft.util.math.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; -import net.minecraftforge.client.model.data.IModelData; + import net.minecraftforge.common.util.Constants; import appeng.api.AEApi; @@ -331,9 +331,8 @@ public class CraftingBlockEntity extends AENetworkBlockEntity implements IAEMult this.previousState = previousState; } - @Nonnull @Override - public IModelData getModelData() { + public Object getRenderAttachmentData() { return new CraftingCubeModelData(getUp(), getForward(), getConnections()); } diff --git a/src/main/java/appeng/tile/crafting/CraftingMonitorBlockEntity.java b/src/main/java/appeng/tile/crafting/CraftingMonitorBlockEntity.java index a1a63578f..24d16e5c2 100644 --- a/src/main/java/appeng/tile/crafting/CraftingMonitorBlockEntity.java +++ b/src/main/java/appeng/tile/crafting/CraftingMonitorBlockEntity.java @@ -32,7 +32,7 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.network.PacketByteBuf; import net.minecraft.util.math.Direction; import net.fabricmc.api.EnvType; -import net.minecraftforge.client.model.data.IModelData; + import appeng.api.AEApi; import appeng.api.implementations.tiles.IColorableTile; @@ -169,7 +169,7 @@ public class CraftingMonitorBlockEntity extends CraftingBlockEntity implements I @Nonnull @Override - public IModelData getModelData() { + public CraftingMonitorModelData getRenderAttachmentData() { return new CraftingMonitorModelData(getUp(), getForward(), getConnections(), getColor()); } diff --git a/src/main/java/appeng/tile/crafting/MolecularAssemblerRenderer.java b/src/main/java/appeng/tile/crafting/MolecularAssemblerRenderer.java index dac9a8ffa..b440837a7 100644 --- a/src/main/java/appeng/tile/crafting/MolecularAssemblerRenderer.java +++ b/src/main/java/appeng/tile/crafting/MolecularAssemblerRenderer.java @@ -34,7 +34,7 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderState; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.client.render.model.ItemCameraTransforms; +import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.renderer.texture.AtlasTexture; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -135,7 +135,7 @@ public class MolecularAssemblerRenderer extends BlockEntityRenderer drops) {