Enabled block states ignoring properties
Enabled block states ignoring. File with same name as block state, but with .ignore.json extension. Although it's json extension, it is NOT IN JSON FORMAT!!! Each line is name of property to ignore. Refers to #10.
This commit is contained in:
parent
e24d166f6a
commit
9f96b86938
|
@ -93,6 +93,10 @@ public class ClientHelper extends ServerHelper
|
|||
{
|
||||
MinecraftForge.EVENT_BUS.register( this );
|
||||
ModelLoaderRegistry.registerLoader( UVLModelLoader.INSTANCE );
|
||||
for( IAEFeature feature : Api.INSTANCE.definitions().getFeatureRegistry().getRegisteredFeatures() )
|
||||
{
|
||||
feature.handler().registerStateMapper();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
|
||||
package appeng.client.render.model;
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
|
||||
import net.minecraft.client.resources.IResourceManager;
|
||||
import net.minecraft.client.resources.IResourceManagerReloadListener;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
|
||||
public class AEIgnoringStateMapper extends StateMapperBase implements IResourceManagerReloadListener
|
||||
{
|
||||
|
||||
private final ResourceLocation ignoredRL;
|
||||
private final List<String> ignored = new ArrayList<>();
|
||||
|
||||
public AEIgnoringStateMapper( ResourceLocation ignoredRL )
|
||||
{
|
||||
this.ignoredRL = new ResourceLocation( ignoredRL.getResourceDomain(), "blockstates/" + ignoredRL.getResourcePath() + ".ignore.json" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResourceManagerReload( IResourceManager resourceManager )
|
||||
{
|
||||
try
|
||||
{
|
||||
ignored.addAll( IOUtils.readLines( resourceManager.getResource( ignoredRL ).getInputStream() ) );
|
||||
}
|
||||
catch( IOException e )
|
||||
{
|
||||
// There's no ignore file, so everything is ok.
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ModelResourceLocation getModelResourceLocation( IBlockState state )
|
||||
{
|
||||
Map<IProperty<?>, Comparable<?>> map = Maps.<IProperty<?>, Comparable<?>>newLinkedHashMap( state.getProperties() );
|
||||
Iterator<Entry<IProperty<?>, Comparable<?>>> it = map.entrySet().iterator();
|
||||
while( it.hasNext() )
|
||||
{
|
||||
if( ignored.contains( it.next().getKey().getName() ) )
|
||||
{
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
return new ModelResourceLocation( (ResourceLocation) Block.REGISTRY.getNameForObject( state.getBlock() ), this.getPropertyString( map ) );
|
||||
}
|
||||
|
||||
}
|
|
@ -153,13 +153,13 @@ public final class AppEng
|
|||
CreativeTabFacade.init();
|
||||
}
|
||||
|
||||
this.registration.preInitialize( event );
|
||||
|
||||
if( Platform.isClient() )
|
||||
{
|
||||
CommonHelper.proxy.preinit();
|
||||
}
|
||||
|
||||
this.registration.preInitialize( event );
|
||||
|
||||
if( versionCheckerConfig.isVersionCheckingEnabled() )
|
||||
{
|
||||
final VersionChecker versionChecker = new VersionChecker( versionCheckerConfig );
|
||||
|
|
|
@ -26,12 +26,15 @@ import com.google.common.base.Optional;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.client.resources.IReloadableResourceManager;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
|
||||
import appeng.api.definitions.IBlockDefinition;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.model.AEIgnoringStateMapper;
|
||||
import appeng.core.AppEng;
|
||||
import appeng.core.CreativeTab;
|
||||
|
||||
|
@ -99,4 +102,12 @@ public final class AEBlockFeatureHandler implements IFeatureHandler
|
|||
{
|
||||
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this.definition.maybeItem().get(), 0, new ModelResourceLocation( registryName, "normal" ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerStateMapper()
|
||||
{
|
||||
AEIgnoringStateMapper mapper = new AEIgnoringStateMapper( registryName );
|
||||
ModelLoader.setCustomStateMapper( this.featured, mapper );
|
||||
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() ).registerReloadListener( mapper );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,4 +107,10 @@ public final class AECableBusFeatureHandler implements IFeatureHandler
|
|||
{
|
||||
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this.definition.maybeItem().get(), 0, new ModelResourceLocation( registryName, "normal" ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerStateMapper()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,12 +26,15 @@ import com.google.common.base.Optional;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.client.resources.IReloadableResourceManager;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
|
||||
import appeng.api.definitions.ITileDefinition;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.model.AEIgnoringStateMapper;
|
||||
import appeng.core.AppEng;
|
||||
import appeng.core.CommonHelper;
|
||||
import appeng.core.CreativeTab;
|
||||
|
@ -105,4 +108,12 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler
|
|||
{
|
||||
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this.definition.maybeItem().get(), 0, new ModelResourceLocation( registryName, "normal" ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerStateMapper()
|
||||
{
|
||||
AEIgnoringStateMapper mapper = new AEIgnoringStateMapper( registryName );
|
||||
ModelLoader.setCustomStateMapper( this.featured, mapper );
|
||||
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() ).registerReloadListener( mapper );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,4 +35,7 @@ public interface IFeatureHandler
|
|||
|
||||
@SideOnly( Side.CLIENT )
|
||||
void registerModel();
|
||||
|
||||
@SideOnly( Side.CLIENT )
|
||||
void registerStateMapper();
|
||||
}
|
||||
|
|
|
@ -113,4 +113,10 @@ public final class ItemFeatureHandler implements IFeatureHandler
|
|||
{
|
||||
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( item, 0, new ModelResourceLocation( registryName, "inventory" ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerStateMapper()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,13 +27,16 @@ import net.minecraft.block.BlockStairs;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.client.resources.IReloadableResourceManager;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
|
||||
import appeng.api.definitions.IBlockDefinition;
|
||||
import appeng.client.render.model.AEIgnoringStateMapper;
|
||||
import appeng.core.AppEng;
|
||||
import appeng.core.CreativeTab;
|
||||
|
||||
|
@ -95,4 +98,12 @@ public class StairBlockFeatureHandler implements IFeatureHandler
|
|||
{
|
||||
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this.definition.maybeItem().get(), 0, new ModelResourceLocation( registryName, "inventory" ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerStateMapper()
|
||||
{
|
||||
AEIgnoringStateMapper mapper = new AEIgnoringStateMapper( registryName );
|
||||
ModelLoader.setCustomStateMapper( this.stairs, mapper );
|
||||
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() ).registerReloadListener( mapper );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
up
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"variants": {
|
||||
"forward=north,up=up": { "model": "appliedenergistics2:tile.BlockGrinder" },
|
||||
"forward=south,up=up": { "model": "appliedenergistics2:tile.BlockGrinder", "y": 180 },
|
||||
"forward=west,up=up": { "model": "appliedenergistics2:tile.BlockGrinder", "y": 270 },
|
||||
"forward=east,up=up": { "model": "appliedenergistics2:tile.BlockGrinder", "y": 90 }
|
||||
"forward=north": { "model": "appliedenergistics2:tile.BlockGrinder" },
|
||||
"forward=south": { "model": "appliedenergistics2:tile.BlockGrinder", "y": 180 },
|
||||
"forward=west": { "model": "appliedenergistics2:tile.BlockGrinder", "y": 270 },
|
||||
"forward=east": { "model": "appliedenergistics2:tile.BlockGrinder", "y": 90 }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue