Implemented automatic rotation

Implemented automatic rotation for all tile blocks. You can still use
facing properties in model files, if you want to.

Also, some added some fixes and improvements.
This commit is contained in:
elix-x
2016-07-05 19:43:51 +02:00
parent 63fb23d1b6
commit 0809ac5625
12 changed files with 337 additions and 6 deletions
@@ -24,10 +24,12 @@ import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.IBakedModel;
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.minecraft.util.registry.IRegistry;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
@@ -110,4 +112,10 @@ public final class AEBlockFeatureHandler implements IFeatureHandler
ModelLoader.setCustomStateMapper( this.featured, mapper );
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() ).registerReloadListener( mapper );
}
@Override
public void registerCustomModelOverride( IRegistry<ModelResourceLocation, IBakedModel> modelRegistry )
{
}
}
@@ -24,10 +24,12 @@ import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.IRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
@@ -113,4 +115,10 @@ public final class AECableBusFeatureHandler implements IFeatureHandler
{
}
@Override
public void registerCustomModelOverride( IRegistry<ModelResourceLocation, IBakedModel> modelRegistry )
{
}
}
@@ -20,14 +20,18 @@ package appeng.core.features;
import java.util.EnumSet;
import java.util.Set;
import com.google.common.base.Optional;
import com.google.common.collect.Sets;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.IBakedModel;
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.minecraft.util.registry.IRegistry;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
@@ -35,6 +39,7 @@ import net.minecraftforge.fml.relauncher.Side;
import appeng.api.definitions.ITileDefinition;
import appeng.block.AEBaseTileBlock;
import appeng.client.render.model.AEIgnoringStateMapper;
import appeng.client.render.model.CachingRotatingBakedModel;
import appeng.core.AppEng;
import appeng.core.CommonHelper;
import appeng.core.CreativeTab;
@@ -116,4 +121,17 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler
ModelLoader.setCustomStateMapper( this.featured, mapper );
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() ).registerReloadListener( mapper );
}
@Override
public void registerCustomModelOverride( IRegistry<ModelResourceLocation, IBakedModel> modelRegistry )
{
Set<ModelResourceLocation> keys = Sets.newHashSet( modelRegistry.getKeys() );
for( ModelResourceLocation model : keys )
{
if( model.getResourcePath().equals( registryName.getResourcePath() ) )
{
modelRegistry.putObject( model, new CachingRotatingBakedModel( modelRegistry.getObject( model ) ) );
}
}
}
}
@@ -19,6 +19,9 @@
package appeng.core.features;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.util.registry.IRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -38,4 +41,7 @@ public interface IFeatureHandler
@SideOnly( Side.CLIENT )
void registerStateMapper();
@SideOnly( Side.CLIENT )
void registerCustomModelOverride( IRegistry<ModelResourceLocation, IBakedModel> modelRegistry );
}
@@ -24,10 +24,12 @@ import java.util.EnumSet;
import com.google.common.base.Optional;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.IRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
@@ -119,4 +121,10 @@ public final class ItemFeatureHandler implements IFeatureHandler
{
}
@Override
public void registerCustomModelOverride( IRegistry<ModelResourceLocation, IBakedModel> modelRegistry )
{
}
}
@@ -25,12 +25,14 @@ import com.google.common.base.Optional;
import net.minecraft.block.BlockStairs;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.IBakedModel;
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.minecraft.util.registry.IRegistry;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
@@ -106,4 +108,10 @@ public class StairBlockFeatureHandler implements IFeatureHandler
ModelLoader.setCustomStateMapper( this.stairs, mapper );
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() ).registerReloadListener( mapper );
}
@Override
public void registerCustomModelOverride( IRegistry<ModelResourceLocation, IBakedModel> modelRegistry )
{
}
}