Fixes API compilation problem.

This commit is contained in:
Sebastian Hartte
2016-09-13 19:58:38 +02:00
parent 11625ea240
commit 9c561d550b
5 changed files with 67 additions and 72 deletions
@@ -17,6 +17,7 @@ import net.minecraft.util.ResourceLocation;
import appeng.api.util.AECableType;
import appeng.api.util.AEColor;
import appeng.core.AppEng;
/**
@@ -60,7 +61,7 @@ class CableBuilder
for( AEColor color : AEColor.values() )
{
colorTextures.put( color, bakedTextureGetter.apply( type.getConnectionTexture( color ) ) );
colorTextures.put( color, bakedTextureGetter.apply( getConnectionTexture( type, color ) ) );
}
connectionTextures.put( type, colorTextures );
@@ -69,6 +70,29 @@ class CableBuilder
smartCableTextures = new SmartCableTextures( bakedTextureGetter );
}
static ResourceLocation getConnectionTexture( AECableType cableType, AEColor color )
{
String textureFolder;
switch (cableType) {
case GLASS:
textureFolder = "parts/cable/glass/";
break;
case COVERED:
textureFolder = "parts/cable/covered/";
break;
case SMART:
textureFolder = "parts/cable/smart/";
break;
case DENSE:
textureFolder = "parts/cable/dense/";
break;
default:
throw new IllegalStateException( "Cable type " + cableType + " does not support connections." );
}
return new ResourceLocation( AppEng.MOD_ID, textureFolder + color.name().toLowerCase() );
}
/**
* Adds the core of a cable to the given list of quads.
*
@@ -656,7 +680,7 @@ class CableBuilder
{
for( AEColor color : AEColor.values() )
{
locations.add( cableType.getConnectionTexture( color ) );
locations.add( getConnectionTexture( cableType, color ) );
}
}
@@ -195,7 +195,7 @@ public class CableBusBakedModel implements IBakedModel
*/
public List<TextureAtlasSprite> getParticleTextures( CableBusRenderState renderState )
{
CableCoreType coreType = renderState.getCableType().getCoreType();
CableCoreType coreType = CableCoreType.fromCableType( renderState.getCableType() );
AEColor cableColor = renderState.getCableColor();
if( coreType != null )
@@ -1,8 +1,14 @@
package appeng.client.render.cablebus;
import java.util.EnumMap;
import java.util.Map;
import com.google.common.collect.ImmutableMap;
import net.minecraft.util.ResourceLocation;
import appeng.api.util.AECableType;
import appeng.api.util.AEColor;
import appeng.core.AppEng;
@@ -20,6 +26,24 @@ public enum CableCoreType
COVERED( "parts/cable/core/covered" ),
DENSE( "parts/cable/core/dense" );
private static final Map<AECableType, CableCoreType> cableMapping = generateCableMapping();
/**
* Creates the mapping that assigns a cable core type to an AE cable type.
*/
private static Map<AECableType, CableCoreType> generateCableMapping()
{
Map<AECableType, CableCoreType> result = new EnumMap<>( AECableType.class );
result.put( AECableType.GLASS, CableCoreType.GLASS );
result.put( AECableType.COVERED, CableCoreType.COVERED );
result.put( AECableType.SMART, CableCoreType.COVERED );
result.put( AECableType.DENSE, CableCoreType.DENSE );
return ImmutableMap.copyOf( result );
}
private final String textureFolder;
CableCoreType( String textureFolder )
@@ -27,9 +51,18 @@ public enum CableCoreType
this.textureFolder = textureFolder;
}
/**
* @return The type of core that should be rendered when the given cable isn't straight and needs to have a core to attach connections to.
* Is null for the NULL cable.
*/
public static CableCoreType fromCableType( AECableType cableType )
{
return cableMapping.get( cableType );
}
public ResourceLocation getTexture( AEColor color )
{
return new ResourceLocation( AppEng.MOD_ID, textureFolder + "/" + color.name().toLowerCase() );
}
}
}
@@ -1163,7 +1163,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
{
renderState.setCableColor( cable.getCableColor() );
renderState.setCableType( cable.getCableConnectionType() );
renderState.setCoreType( cable.getCableConnectionType().getCoreType() );
renderState.setCoreType( CableCoreType.fromCableType( cable.getCableConnectionType() ) );
// Check each outgoing connection for the desired characteristics
for( EnumFacing facing : EnumFacing.values() )