Ported model dependency changes from Fabric 1.16.

Made IChestLid sided.
This commit is contained in:
Sebastian Hartte
2020-07-30 22:08:19 +02:00
parent a628a469ce
commit 98e9faa262
17 changed files with 152 additions and 149 deletions
@@ -1,26 +1,24 @@
package appeng.block.qnb;
import java.util.Collection;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Stream;
import com.mojang.datafixers.util.Pair;
import com.google.common.collect.ImmutableSet;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
public class QnbFormedModel implements IModelGeometry<QnbFormedModel> {
public class QnbFormedModel implements BasicUnbakedModel<QnbFormedModel> {
private static final ResourceLocation MODEL_RING = new ResourceLocation(AppEng.MOD_ID, "block/qnb/ring");
@@ -33,9 +31,13 @@ public class QnbFormedModel implements IModelGeometry<QnbFormedModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return QnbFormedBakedModel.getRequiredTextures();
public Collection<ResourceLocation> getModelDependencies() {
return ImmutableSet.of(MODEL_RING);
}
@Override
public Stream<RenderMaterial> getAdditionalTextures() {
return QnbFormedBakedModel.getRequiredTextures().stream();
}
}
@@ -0,0 +1,42 @@
package appeng.client.render;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.RenderMaterial;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
/**
* An unbaked model that has standard models as a dependency and produces a
* custom baked model as a result.
*/
public interface BasicUnbakedModel<T extends IModelGeometry<T>> extends IModelGeometry<T> {
default Collection<ResourceLocation> getModelDependencies() {
return Collections.emptyList();
}
default Stream<RenderMaterial> getAdditionalTextures() {
return Stream.empty();
}
@Override
default Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> unbakedModelGetter,
Set<Pair<String, String>> unresolvedTextureReferences) {
return Stream.concat(
getModelDependencies().stream().map(unbakedModelGetter)
.flatMap(ubm -> ubm.getTextures(unbakedModelGetter, unresolvedTextureReferences).stream()),
getAdditionalTextures()).collect(Collectors.toList());
}
}
@@ -19,21 +19,17 @@
package appeng.client.render;
import java.util.Collection;
import java.util.Set;
import java.util.Collections;
import java.util.function.Function;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.cablebus.FacadeBuilder;
import appeng.core.AppEng;
@@ -42,7 +38,7 @@ import appeng.core.AppEng;
* The model class for facades. Since facades wrap existing models, they don't
* declare any dependencies here other than the cable anchor.
*/
public class FacadeItemModel implements IModelGeometry<FacadeItemModel> {
public class FacadeItemModel implements BasicUnbakedModel<FacadeItemModel> {
// We use this to get the default item transforms and make our lives easier
private static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID, "item/facade_base");
@@ -58,9 +54,7 @@ public class FacadeItemModel implements IModelGeometry<FacadeItemModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return modelGetter.apply(MODEL_BASE).getTextures(modelGetter, missingTextureErrors);
public Collection<ResourceLocation> getModelDependencies() {
return Collections.singleton(MODEL_BASE);
}
}
@@ -19,33 +19,30 @@
package appeng.client.render.cablebus;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Stream;
import com.google.common.collect.ImmutableMap;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.api.util.AEColor;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AELog;
import appeng.core.features.registries.PartModels;
/**
* The built-in model for the cable bus block.
*/
public class CableBusModel implements IModelGeometry<CableBusModel> {
public class CableBusModel implements BasicUnbakedModel<CableBusModel> {
private final PartModels partModels;
@@ -53,6 +50,17 @@ public class CableBusModel implements IModelGeometry<CableBusModel> {
this.partModels = partModels;
}
@Override
public Collection<ResourceLocation> getModelDependencies() {
partModels.setInitialized(true);
return partModels.getModels();
}
@Override
public Stream<RenderMaterial> getAdditionalTextures() {
return CableBuilder.getTextures().stream();
}
@Override
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery,
Function<RenderMaterial, TextureAtlasSprite> spriteGetter, IModelTransform modelTransform,
@@ -70,12 +78,6 @@ public class CableBusModel implements IModelGeometry<CableBusModel> {
return new CableBusBakedModel(cableBuilder, facadeBuilder, partModels, particleTexture);
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.unmodifiableList(CableBuilder.getTextures());
}
private Map<ResourceLocation, IBakedModel> loadPartModels(ModelBakery bakery,
Function<RenderMaterial, TextureAtlasSprite> spriteGetterIn, IModelTransform transformIn) {
ImmutableMap.Builder<ResourceLocation, IBakedModel> result = ImmutableMap.builder();
@@ -1,15 +1,10 @@
package appeng.client.render.cablebus;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import com.mojang.datafixers.util.Pair;
import java.util.stream.Stream;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -17,11 +12,11 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
public class P2PTunnelFrequencyModel implements IModelGeometry<P2PTunnelFrequencyModel> {
public class P2PTunnelFrequencyModel implements BasicUnbakedModel<P2PTunnelFrequencyModel> {
private static final RenderMaterial TEXTURE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE,
new ResourceLocation(AppEng.MOD_ID, "part/p2p_tunnel_frequency"));
@@ -38,9 +33,8 @@ public class P2PTunnelFrequencyModel implements IModelGeometry<P2PTunnelFrequenc
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.singleton(TEXTURE);
public Stream<RenderMaterial> getAdditionalTextures() {
return Stream.of(TEXTURE);
}
}
@@ -18,16 +18,11 @@
package appeng.client.render.crafting;
import java.util.Collection;
import java.util.Set;
import java.util.function.Function;
import com.google.common.collect.ImmutableList;
import com.mojang.datafixers.util.Pair;
import java.util.stream.Stream;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -35,15 +30,15 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.block.crafting.AbstractCraftingUnitBlock;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
/**
* The built-in model for the connected texture crafting cube.
*/
class CraftingCubeModel implements IModelGeometry<CraftingCubeModel> {
class CraftingCubeModel implements BasicUnbakedModel<CraftingCubeModel> {
private final static RenderMaterial RING_CORNER = texture("ring_corner");
private final static RenderMaterial RING_SIDE_HOR = texture("ring_side_hor");
@@ -67,9 +62,8 @@ class CraftingCubeModel implements IModelGeometry<CraftingCubeModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return ImmutableList.of(RING_CORNER, RING_SIDE_HOR, RING_SIDE_VER, UNIT_BASE, LIGHT_BASE, ACCELERATOR_LIGHT,
public Stream<RenderMaterial> getAdditionalTextures() {
return Stream.of(RING_CORNER, RING_SIDE_HOR, RING_SIDE_VER, UNIT_BASE, LIGHT_BASE, ACCELERATOR_LIGHT,
STORAGE_1K_LIGHT, STORAGE_4K_LIGHT, STORAGE_16K_LIGHT, STORAGE_64K_LIGHT, MONITOR_BASE,
MONITOR_LIGHT_DARK, MONITOR_LIGHT_MEDIUM, MONITOR_LIGHT_BRIGHT);
}
@@ -2,16 +2,13 @@ package appeng.client.render.model;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -19,24 +16,28 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
/**
* Model wrapper for the biometric card item model, which combines a base card
* layer with a "visual hash" of the player name
*/
public class BiometricCardModel implements IModelGeometry<BiometricCardModel> {
public class BiometricCardModel implements BasicUnbakedModel<BiometricCardModel> {
public static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID, "item/biometric_card_base");
private static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID, "item/biometric_card_base");
private static final RenderMaterial TEXTURE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE,
new ResourceLocation(AppEng.MOD_ID, "item/biometric_card_hash"));
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.singleton(TEXTURE);
public Collection<ResourceLocation> getModelDependencies() {
return Collections.singleton(MODEL_BASE);
}
@Override
public Stream<RenderMaterial> getAdditionalTextures() {
return Stream.of(TEXTURE);
}
@Nullable
@@ -1,15 +1,12 @@
package appeng.client.render.model;
import java.util.Arrays;
import java.util.Collection;
import java.util.Set;
import java.util.Collections;
import java.util.function.Function;
import com.mojang.datafixers.util.Pair;
import java.util.stream.Stream;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -17,15 +14,15 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
/**
* A color applicator uses the base model, and extends it with additional layers
* that are colored according to the selected color of the applicator.
*/
public class ColorApplicatorModel implements IModelGeometry<ColorApplicatorModel> {
public class ColorApplicatorModel implements BasicUnbakedModel<ColorApplicatorModel> {
private static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID,
"item/color_applicator_colored");
@@ -38,9 +35,13 @@ public class ColorApplicatorModel implements IModelGeometry<ColorApplicatorModel
new ResourceLocation(AppEng.MOD_ID, "item/color_applicator_tip_bright"));
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Arrays.asList(TEXTURE_DARK, TEXTURE_MEDIUM, TEXTURE_DARK);
public Collection<ResourceLocation> getModelDependencies() {
return Collections.singleton(MODEL_BASE);
}
@Override
public Stream<RenderMaterial> getAdditionalTextures() {
return Stream.of(TEXTURE_DARK, TEXTURE_MEDIUM, TEXTURE_DARK);
}
@Override
@@ -19,18 +19,15 @@
package appeng.client.render.model;
import java.util.Collection;
import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.Function;
import com.mojang.datafixers.util.Pair;
import com.google.common.collect.ImmutableSet;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -39,12 +36,13 @@ import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.api.client.ICellModelRegistry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.Api;
import appeng.core.api.client.ApiCellModelRegistry;
public class DriveModel implements IModelGeometry<DriveModel> {
public class DriveModel implements BasicUnbakedModel<DriveModel> {
private static final ResourceLocation MODEL_BASE = new ResourceLocation(
"appliedenergistics2:block/drive/drive_base");
@@ -73,9 +71,10 @@ public class DriveModel implements IModelGeometry<DriveModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.emptyList();
public Collection<ResourceLocation> getModelDependencies() {
ICellModelRegistry cells = Api.instance().client().cells();
return ImmutableSet.<ResourceLocation>builder().add(cells.getDefaultModel())
.addAll(ApiCellModelRegistry.getModels()).addAll(cells.models().values()).build();
}
}
@@ -18,28 +18,26 @@
package appeng.client.render.model;
import java.util.Collection;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Stream;
import com.google.common.collect.ImmutableSet;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
/**
* Model class for the connected texture glass model.
*/
public class GlassModel implements IModelGeometry<GlassModel> {
public class GlassModel implements BasicUnbakedModel<GlassModel> {
@Override
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery,
@@ -49,12 +47,11 @@ public class GlassModel implements IModelGeometry<GlassModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
public Stream<RenderMaterial> getAdditionalTextures() {
return ImmutableSet
.<RenderMaterial>builder().add(GlassBakedModel.TEXTURE_A, GlassBakedModel.TEXTURE_B,
GlassBakedModel.TEXTURE_C, GlassBakedModel.TEXTURE_D)
.add(GlassBakedModel.TEXTURES_FRAME).build();
.add(GlassBakedModel.TEXTURES_FRAME).build().stream();
}
}
@@ -2,16 +2,13 @@ package appeng.client.render.model;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -19,24 +16,23 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
/**
* Model wrapper for the memory card item model, which combines a base card
* layer with a "visual hash" of the part/tile.
*/
public class MemoryCardModel implements IModelGeometry<MemoryCardModel> {
public class MemoryCardModel implements BasicUnbakedModel<MemoryCardModel> {
public static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID, "item/memory_card_base");
private static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID, "item/memory_card_base");
private static final RenderMaterial TEXTURE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE,
new ResourceLocation(AppEng.MOD_ID, "item/memory_card_hash"));
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.singleton(TEXTURE);
public Collection<ResourceLocation> getModelDependencies() {
return Collections.singleton(MODEL_BASE);
}
@Nullable
@@ -51,4 +47,9 @@ public class MemoryCardModel implements IModelGeometry<MemoryCardModel> {
return new MemoryCardBakedModel(baseModel, texture);
}
@Override
public Stream<RenderMaterial> getAdditionalTextures() {
return Stream.of(TEXTURE);
}
}
@@ -19,30 +19,26 @@
package appeng.client.render.model;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
import com.google.common.collect.ImmutableList;
import com.mojang.datafixers.util.Pair;
import com.google.common.collect.ImmutableSet;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
/**
* The parent model for the compass baked model. Declares the dependencies for
* the base and pointer submodels mostly.
*/
public class SkyCompassModel implements IModelGeometry<SkyCompassModel> {
public class SkyCompassModel implements BasicUnbakedModel<SkyCompassModel> {
private static final ResourceLocation MODEL_BASE = new ResourceLocation(
"appliedenergistics2:block/sky_compass_base");
@@ -50,8 +46,6 @@ public class SkyCompassModel implements IModelGeometry<SkyCompassModel> {
private static final ResourceLocation MODEL_POINTER = new ResourceLocation(
"appliedenergistics2:block/sky_compass_pointer");
public static final List<ResourceLocation> DEPENDENCIES = ImmutableList.of(MODEL_BASE, MODEL_POINTER);
@Override
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery,
Function<RenderMaterial, TextureAtlasSprite> spriteGetter, IModelTransform modelTransform,
@@ -62,9 +56,8 @@ public class SkyCompassModel implements IModelGeometry<SkyCompassModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.emptyList();
public Collection<ResourceLocation> getModelDependencies() {
return ImmutableSet.of(MODEL_BASE, MODEL_POINTER);
}
}
@@ -19,18 +19,13 @@
package appeng.client.render.spatial;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumMap;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.mojang.datafixers.util.Pair;
import java.util.stream.Stream;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -38,11 +33,11 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
import appeng.core.AppEng;
public class SpatialPylonModel implements IModelGeometry<SpatialPylonModel> {
public class SpatialPylonModel implements BasicUnbakedModel<SpatialPylonModel> {
@Override
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery,
@@ -58,10 +53,8 @@ public class SpatialPylonModel implements IModelGeometry<SpatialPylonModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Arrays.stream(SpatialPylonTextureType.values()).map(SpatialPylonModel::getTexturePath)
.collect(Collectors.toList());
public Stream<RenderMaterial> getAdditionalTextures() {
return Arrays.stream(SpatialPylonTextureType.values()).map(SpatialPylonModel::getTexturePath);
}
private static RenderMaterial getTexturePath(SpatialPylonTextureType type) {
@@ -126,9 +126,6 @@ import appeng.client.render.effects.LightningFX;
import appeng.client.render.effects.MatterCannonFX;
import appeng.client.render.effects.ParticleTypes;
import appeng.client.render.effects.VibrantFX;
import appeng.client.render.model.BiometricCardModel;
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;
@@ -166,7 +163,6 @@ import appeng.container.implementations.UpgradeableContainer;
import appeng.container.implementations.VibrationChamberContainer;
import appeng.container.implementations.WirelessContainer;
import appeng.container.implementations.WirelessTermContainer;
import appeng.core.api.client.ApiCellModelRegistry;
import appeng.core.features.registries.P2PTunnelRegistry;
import appeng.core.features.registries.PartModels;
import appeng.core.features.registries.cell.BasicCellHandler;
@@ -251,10 +247,6 @@ final class Registration {
*/
@OnlyIn(Dist.CLIENT)
private void registerSpecialModels() {
SkyCompassModel.DEPENDENCIES.forEach(ModelLoader::addSpecialModel);
ModelLoader.addSpecialModel(BiometricCardModel.MODEL_BASE);
ModelLoader.addSpecialModel(MemoryCardModel.MODEL_BASE);
ApiCellModelRegistry.registerModels();
ModelLoader.addSpecialModel(MolecularAssemblerRenderer.LIGHTS_MODEL);
PartModels partModels = (PartModels) Api.INSTANCE.registries().partModels();
@@ -1,6 +1,6 @@
/*
* This file is part of Applied Energistics 2.
*
*
* Copyright (c) 2020, TeamAppliedEnergistics, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
@@ -20,6 +20,7 @@
package appeng.core.api.client;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.Map;
@@ -31,7 +32,6 @@ import com.google.common.base.Preconditions;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import appeng.api.client.ICellModelRegistry;
import appeng.core.ApiDefinitions;
@@ -67,8 +67,8 @@ public class ApiCellModelRegistry implements ICellModelRegistry {
MODEL_CELL_ITEMS_1K, MODEL_CELL_ITEMS_4K, MODEL_CELL_ITEMS_16K, MODEL_CELL_ITEMS_64K, MODEL_CELL_FLUIDS_1K,
MODEL_CELL_FLUIDS_4K, MODEL_CELL_FLUIDS_16K, MODEL_CELL_FLUIDS_64K, MODEL_CELL_CREATIVE };
public static void registerModels() {
Arrays.stream(MODELS).forEach(ModelLoader::addSpecialModel);
public static Collection<ResourceLocation> getModels() {
return Arrays.asList(MODELS);
}
private final Map<Item, ResourceLocation> registry;
@@ -18,16 +18,11 @@
package appeng.parts.automation;
import java.util.Arrays;
import java.util.Collection;
import java.util.Set;
import java.util.function.Function;
import com.mojang.datafixers.util.Pair;
import java.util.stream.Stream;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IModelTransform;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.RenderMaterial;
@@ -35,12 +30,13 @@ import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
import appeng.client.render.BasicUnbakedModel;
/**
* Built-in model for annihilation planes that supports connected textures.
*/
public class PlaneModel implements IModelGeometry<PlaneModel> {
public class PlaneModel implements BasicUnbakedModel<PlaneModel> {
private final RenderMaterial frontTexture;
private final RenderMaterial sidesTexture;
@@ -64,9 +60,8 @@ public class PlaneModel implements IModelGeometry<PlaneModel> {
}
@Override
public Collection<RenderMaterial> getTextures(IModelConfiguration owner,
Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Arrays.asList(frontTexture, sidesTexture, backTexture);
public Stream<RenderMaterial> getAdditionalTextures() {
return Stream.of(frontTexture, sidesTexture, backTexture);
}
}
@@ -30,6 +30,8 @@ import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.MathHelper;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.items.IItemHandler;
import appeng.block.storage.SkyChestBlock;
@@ -37,6 +39,7 @@ import appeng.tile.AEBaseInvTileEntity;
import appeng.tile.inventory.AppEngInternalInventory;
import appeng.util.inv.InvOperation;
@OnlyIn(value = Dist.CLIENT, _interface = IChestLid.class)
public class SkyChestTileEntity extends AEBaseInvTileEntity implements ITickableTileEntity, IChestLid {
private final AppEngInternalInventory inv = new AppEngInternalInventory(this, 9 * 4);