All GUI compile errors fixed, switched to excludes over includes in gradle build and lots, LOTS of more fixes.

This commit is contained in:
Sebastian Hartte
2020-06-06 21:16:05 +02:00
parent bb453b0d35
commit ff042a394b
209 changed files with 4527 additions and 4479 deletions
@@ -9,48 +9,41 @@ 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.Material;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.*;
import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import appeng.core.AppEng;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
/**
* 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 IUnbakedModel
public class BiometricCardModel implements IModelGeometry<BiometricCardModel>
{
private static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/biometric_card" );
private static final Material TEXTURE = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/biometric_card_hash" ) );
@Override
public Collection<ResourceLocation> getDependencies()
{
return Collections.singletonList( MODEL_BASE );
}
@Override
public Collection<Material> getTextures( Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
public Collection<Material> getTextures( IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
{
return Collections.singleton( TEXTURE );
}
@Nullable
@Override
public IBakedModel bakeModel( ModelBakery modelBakeryIn, Function<Material, TextureAtlasSprite> spriteGetterIn, IModelTransform transformIn, ResourceLocation locationIn )
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function<Material, TextureAtlasSprite> spriteGetter, IModelTransform transformIn, ItemOverrideList overrides, ResourceLocation locationIn )
{
TextureAtlasSprite texture = spriteGetterIn.apply( TEXTURE );
TextureAtlasSprite texture = spriteGetter.apply( TEXTURE );
IBakedModel baseModel = modelBakeryIn.getBakedModel( MODEL_BASE, transformIn, spriteGetterIn );
IBakedModel baseModel = bakery.getBakedModel( MODEL_BASE, transformIn, spriteGetter );
return new BiometricCardBakedModel( baseModel, texture );
}
}
@@ -1,76 +0,0 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Applied Energistics 2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.client.render.model;
import java.util.Map;
import com.google.common.collect.ImmutableMap;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.resources.IResourceManager;
import net.minecraft.resources.IResourceManagerReloadListener;
import net.minecraft.util.ResourceLocation;
import appeng.core.AppEng;
import net.minecraftforge.client.model.IModelLoader;
/**
* Manages built-in models.
*/
public class BuiltInModelLoader implements IModelLoader
{
private final Map<String, IUnbakedModel> builtInModels;
public BuiltInModelLoader( Map<String, IUnbakedModel> builtInModels )
{
this.builtInModels = ImmutableMap.copyOf( builtInModels );
}
@Override
public boolean accepts( ResourceLocation modelLocation )
{
if( !modelLocation.getNamespace().equals( AppEng.MOD_ID ) )
{
return false;
}
return this.builtInModels.containsKey( modelLocation.getResourcePath() );
}
@Override
public IModel loadModel( ResourceLocation modelLocation ) throws Exception
{
return this.builtInModels.get( modelLocation.getResourcePath() );
}
@Override
public void onResourceManagerReload( IResourceManager resourceManager )
{
for( IModel model : this.builtInModels.values() )
{
if( model instanceof IResourceManagerReloadListener )
{
( (IResourceManagerReloadListener) model ).onResourceManagerReload( resourceManager );
}
}
}
}
@@ -10,24 +10,22 @@ 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.Material;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.*;
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.ModelLoaderRegistry;
import appeng.core.AppEng;
import net.minecraftforge.client.model.geometry.IModelGeometry;
/**
* 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 IUnbakedModel
public class ColorApplicatorModel implements IModelGeometry<ColorApplicatorModel>
{
private static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/color_applicator_colored" );
@@ -37,27 +35,18 @@ public class ColorApplicatorModel implements IUnbakedModel
private static final Material TEXTURE_BRIGHT = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/color_applicator_tip_bright" ) );
@Override
public Collection<ResourceLocation> getDependencies()
{
return Collections.singletonList( MODEL_BASE );
}
@Override
public Collection<Material> getTextures( Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
{
public Collection<Material> getTextures(IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Arrays.asList( TEXTURE_DARK, TEXTURE_MEDIUM, TEXTURE_DARK );
}
@Nullable
@Override
public IBakedModel bakeModel( ModelBakery modelBakeryIn, Function<Material, TextureAtlasSprite> spriteGetterIn, IModelTransform transformIn, ResourceLocation locationIn )
{
IBakedModel baseModel = modelBakeryIn.getBakedModel( MODEL_BASE, transformIn, spriteGetterIn );
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function<Material, TextureAtlasSprite> spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) {
IBakedModel baseModel = bakery.getBakedModel( MODEL_BASE, modelTransform, spriteGetter );
TextureAtlasSprite texDark = spriteGetterIn.apply( TEXTURE_DARK );
TextureAtlasSprite texMedium = spriteGetterIn.apply( TEXTURE_MEDIUM );
TextureAtlasSprite texBright = spriteGetterIn.apply( TEXTURE_BRIGHT );
TextureAtlasSprite texDark = spriteGetter.apply( TEXTURE_DARK );
TextureAtlasSprite texMedium = spriteGetter.apply( TEXTURE_MEDIUM );
TextureAtlasSprite texBright = spriteGetter.apply( TEXTURE_BRIGHT );
return new ColorApplicatorBakedModel( baseModel, transformIn, texDark, texMedium, texBright );
return new ColorApplicatorBakedModel( baseModel, modelTransform, texDark, texMedium, texBright );
}
}
@@ -19,53 +19,48 @@
package appeng.client.render.model;
import appeng.block.storage.DriveSlotState;
import appeng.block.storage.DriveSlotsState;
import appeng.client.render.DelegateBakedModel;
import appeng.tile.storage.TileDrive;
import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.Matrix4f;
import net.minecraft.client.renderer.model.BakedQuad;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.util.Direction;
import net.minecraftforge.client.model.data.IModelData;
import net.minecraftforge.client.model.pipeline.BakedQuadBuilder;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.Matrix4f;
import net.minecraft.client.renderer.Vector3f;
import net.minecraft.client.renderer.model.BakedQuad;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.ItemCameraTransforms;
import net.minecraft.client.renderer.model.ItemOverrideList;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.Direction;
import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad;
import net.minecraftforge.common.property.IExtendedBlockState;
import appeng.block.storage.BlockDrive;
import appeng.block.storage.DriveSlotState;
import appeng.block.storage.DriveSlotsState;
import java.util.Random;
public class DriveBakedModel implements IBakedModel
public class DriveBakedModel extends DelegateBakedModel
{
private final IBakedModel bakedBase;
private final Map<DriveSlotState, IBakedModel> bakedCells;
public DriveBakedModel( IBakedModel bakedBase, Map<DriveSlotState, IBakedModel> bakedCells )
{
super(bakedBase);
this.bakedBase = bakedBase;
this.bakedCells = bakedCells;
}
@Nonnull
@Override
public List<BakedQuad> getQuads( @Nullable BlockState state, @Nullable Direction side, long rand )
{
public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction side, @Nonnull Random rand, @Nonnull IModelData extraData) {
List<BakedQuad> result = new ArrayList<>();
List<BakedQuad> result = new ArrayList<>(this.bakedBase.getQuads(state, side, rand, extraData));
result.addAll( this.bakedBase.getQuads( state, side, rand ) );
DriveSlotsState slotsState = extraData.getData( TileDrive.SLOTS_STATE );
if( side == null && state instanceof IExtendedBlockState )
if( side == null && slotsState != null )
{
IExtendedBlockState extState = (IExtendedBlockState) state;
DriveSlotsState slotsState = extState.getValue( BlockDrive.SLOTS_STATE );
for( int row = 0; row < 5; row++ )
{
for( int col = 0; col < 2; col++ )
@@ -82,12 +77,12 @@ public class DriveBakedModel implements IBakedModel
float xOffset = -col * 7 / 16.0f;
float yOffset = -row * 3 / 16.0f;
transform.setTranslation( new Vector3f( xOffset, yOffset, 0 ) );
transform.setTranslation( xOffset, yOffset, 0 );
MatrixVertexTransformer transformer = new MatrixVertexTransformer( transform );
for( BakedQuad bakedQuad : bakedCell.getQuads( state, null, rand ) )
for( BakedQuad bakedQuad : bakedCell.getQuads( state, null, rand, extraData ) )
{
UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder( bakedQuad.getFormat() );
BakedQuadBuilder builder = new BakedQuadBuilder();
transformer.setParent( builder );
transformer.setVertexFormat( builder.getVertexFormat() );
bakedQuad.pipe( transformer );
@@ -100,39 +95,4 @@ public class DriveBakedModel implements IBakedModel
return result;
}
@Override
public boolean isAmbientOcclusion()
{
return this.bakedBase.isAmbientOcclusion();
}
@Override
public boolean isGui3d()
{
return this.bakedBase.isGui3d();
}
@Override
public boolean isBuiltInRenderer()
{
return this.bakedBase.isGui3d();
}
@Override
public TextureAtlasSprite getParticleTexture()
{
return this.bakedBase.getParticleTexture();
}
@Override
public ItemCameraTransforms getItemCameraTransforms()
{
return this.bakedBase.getItemCameraTransforms();
}
@Override
public ItemOverrideList getOverrides()
{
return this.bakedBase.getOverrides();
}
}
@@ -19,28 +19,19 @@
package appeng.client.render.model;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumMap;
import java.util.Map;
import appeng.block.storage.DriveSlotState;
import com.google.common.collect.ImmutableMap;
import com.mojang.datafixers.util.Pair;
import net.minecraft.client.renderer.model.*;
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 java.util.*;
import java.util.function.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.vertex.VertexFormat;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.client.model.ModelLoaderRegistry;
import net.minecraftforge.common.model.IModelState;
import net.minecraftforge.common.model.TRSRTransformation;
import appeng.block.storage.DriveSlotState;
public class DriveModel implements IModel
public class DriveModel implements IModelGeometry<DriveModel>
{
private static final ResourceLocation MODEL_BASE = new ResourceLocation( "appliedenergistics2:block/drive_base" );
@@ -53,45 +44,23 @@ public class DriveModel implements IModel
DriveSlotState.FULL, new ResourceLocation( "appliedenergistics2:block/drive_cell_full" ) );
@Override
public Collection<ResourceLocation> getDependencies()
{
return ImmutableList.<ResourceLocation>builder().add( MODEL_BASE ).addAll( MODELS_CELLS.values() ).build();
}
@Override
public Collection<ResourceLocation> getTextures()
{
return Collections.emptyList();
}
@Override
public IBakedModel bake( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )
{
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function<Material, TextureAtlasSprite> spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) {
EnumMap<DriveSlotState, IBakedModel> cellModels = new EnumMap<>( DriveSlotState.class );
// Load the base model and the model for each cell state.
IModel baseModel;
try
for( DriveSlotState slotState : MODELS_CELLS.keySet() )
{
baseModel = ModelLoaderRegistry.getModel( MODEL_BASE );
for( DriveSlotState slotState : MODELS_CELLS.keySet() )
{
IModel model = ModelLoaderRegistry.getModel( MODELS_CELLS.get( slotState ) );
cellModels.put( slotState, model.bake( state, format, bakedTextureGetter ) );
}
}
catch( Exception e )
{
throw new RuntimeException( e );
IBakedModel cellModel = bakery.getBakedModel( MODELS_CELLS.get( slotState ), modelTransform, spriteGetter );
cellModels.put( slotState, cellModel );
}
IBakedModel bakedBase = baseModel.bake( state, format, bakedTextureGetter );
return new DriveBakedModel( bakedBase, cellModels );
IBakedModel baseModel = bakery.getBakedModel( MODEL_BASE, modelTransform, spriteGetter );
return new DriveBakedModel( baseModel, cellModels );
}
@Override
public IModelState getDefaultState()
{
return TRSRTransformation.identity();
public Collection<Material> getTextures(IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors) {
return Collections.emptyList();
}
}
@@ -1,21 +0,0 @@
package appeng.client.render.model;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import net.minecraft.resources.IResourceManager;
import net.minecraftforge.client.model.IModelLoader;
public class GlassModelLoader implements IModelLoader<GlassModel> {
public static final GlassModelLoader INSTANCE = new GlassModelLoader();
@Override
public void onResourceManagerReload(IResourceManager resourceManager) {
}
@Override
public GlassModel read(JsonDeserializationContext deserializationContext, JsonObject modelContents) {
return new GlassModel();
}
}
@@ -9,47 +9,40 @@ 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.Material;
import net.minecraft.client.renderer.model.ModelBakery;
import net.minecraft.client.renderer.model.*;
import net.minecraft.client.renderer.texture.AtlasTexture;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.util.ResourceLocation;
import appeng.core.AppEng;
import net.minecraftforge.client.model.IModelConfiguration;
import net.minecraftforge.client.model.geometry.IModelGeometry;
/**
* 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 IUnbakedModel
public class MemoryCardModel implements IModelGeometry<MemoryCardModel>
{
private static final ResourceLocation MODEL_BASE = new ResourceLocation( AppEng.MOD_ID, "item/memory_card" );
private static final Material TEXTURE = new Material( AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation( AppEng.MOD_ID, "items/memory_card_hash" ) );
@Override
public Collection<ResourceLocation> getDependencies()
{
return Collections.singletonList( MODEL_BASE );
}
@Override
public Collection<Material> getTextures( Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
public Collection<Material> getTextures( IModelConfiguration owner, Function<ResourceLocation, IUnbakedModel> modelGetter, Set<Pair<String, String>> missingTextureErrors )
{
return Collections.singleton( TEXTURE );
}
@Nullable
@Override
public IBakedModel bakeModel( ModelBakery modelBakeryIn, Function<Material, TextureAtlasSprite> spriteGetterIn, IModelTransform transformIn, ResourceLocation locationIn )
public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function<Material, TextureAtlasSprite> spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation)
{
TextureAtlasSprite texture = spriteGetterIn.apply( TEXTURE );
TextureAtlasSprite texture = spriteGetter.apply( TEXTURE );
IBakedModel baseModel = modelBakeryIn.getBakedModel( MODEL_BASE, transformIn, spriteGetterIn );
IBakedModel baseModel = bakery.getBakedModel( MODEL_BASE, modelTransform, spriteGetter );
return new MemoryCardBakedModel( baseModel, texture );
}
}
@@ -1,44 +0,0 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Applied Energistics 2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.client.render.model;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import net.minecraft.resources.IResourceManager;
import net.minecraftforge.client.model.IModelLoader;
/**
* Allows the built-in sky compass model the be loaded from JSON.
*/
public class SkyCompassModelLoader implements IModelLoader<SkyCompassModel> {
public static final SkyCompassModelLoader INSTANCE = new SkyCompassModelLoader();
@Override
public void onResourceManagerReload(IResourceManager resourceManager) {
}
@Override
public SkyCompassModel read(JsonDeserializationContext deserializationContext, JsonObject modelContents) {
return new SkyCompassModel();
}
}