diff --git a/src/java/mmm/MmmMaterials.java b/src/java/mmm/MmmMaterials.java index 155f6ff..c12e703 100644 --- a/src/java/mmm/MmmMaterials.java +++ b/src/java/mmm/MmmMaterials.java @@ -8,10 +8,10 @@ import mmm.materials.MItems; import mmm.materials.MMetals; import mmm.materials.MOres; import mmm.materials.MRocks; -import mmm.materials.MTraps; -import mmm.materials.MTrees; -import mmm.materials.MWoodAchievementHandler; import mmm.materials.MWoods; +import mmm.materials.traps.MTraps; +import mmm.materials.trees.MTrees; +import mmm.materials.trees.MWoodAchievementHandler; import net.minecraft.block.Block; import net.minecraft.block.BlockStone; import net.minecraft.block.state.IBlockState; diff --git a/src/java/mmm/core/CRegistry.java b/src/java/mmm/core/CRegistry.java index 00013c5..1237085 100644 --- a/src/java/mmm/core/CRegistry.java +++ b/src/java/mmm/core/CRegistry.java @@ -15,12 +15,10 @@ import mmm.core.api.I_RequiresClientPreInit; import mmm.core.api.blocks.I_ColoredBlock; import mmm.core.api.blocks.I_StateMapperProvider; import mmm.core.api.blocks.I_TintedBlock; -import mmm.core.api.blocks.I_TrapBlock; import mmm.core.api.items.I_ItemModelProvider; import mmm.core.api.items.I_ItemModelProviderBasic; import mmm.core.api.items.I_ItemWithVariants; import mmm.core.api.items.I_TintedItem; -import mmm.materials.MTrapBlocks; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; @@ -143,9 +141,6 @@ public class CRegistry GameRegistry.register( block ); CRegistry.addRecipeRegistrar( block ); CRegistry.addOreGenerationRegistrar( block ); - if ( block instanceof I_TrapBlock ) { - MTrapBlocks.INSTANCE.register( (I_TrapBlock) block ); - } if ( block instanceof I_RequiresClientPreInit ) { CRegistry.BLOCKS_CLIENT_PREINIT.add( block ); } diff --git a/src/java/mmm/deco/DStairs.java b/src/java/mmm/deco/DStairs.java index 464e1fe..b37485c 100644 --- a/src/java/mmm/deco/DStairs.java +++ b/src/java/mmm/deco/DStairs.java @@ -5,7 +5,7 @@ import mmm.MmmDeco; import mmm.MmmMaterials; import mmm.core.CRegistry; import mmm.core.api.I_RecipeRegistrar; -import mmm.materials.MTree; +import mmm.materials.trees.MTree; import net.minecraft.block.Block; import net.minecraft.block.BlockStairs; import net.minecraft.block.BlockStone; diff --git a/src/java/mmm/deco/slabs/DSlabParts.java b/src/java/mmm/deco/slabs/DSlabParts.java index 79f99c2..1cfe119 100644 --- a/src/java/mmm/deco/slabs/DSlabParts.java +++ b/src/java/mmm/deco/slabs/DSlabParts.java @@ -4,7 +4,7 @@ package mmm.deco.slabs; import mmm.core.CRegistry; import mmm.core.api.I_RecipeRegistrar; import mmm.deco.DSmoothStone; -import mmm.materials.MTree; +import mmm.materials.trees.MTree; import net.minecraft.block.Block; import net.minecraft.block.BlockStone; import net.minecraft.block.state.IBlockState; diff --git a/src/java/mmm/materials/MTraps.java b/src/java/mmm/materials/MTraps.java deleted file mode 100644 index 52b666e..0000000 --- a/src/java/mmm/materials/MTraps.java +++ /dev/null @@ -1,30 +0,0 @@ -package mmm.materials; - - -import mmm.core.CRegistry; -import net.minecraft.block.BlockSand; -import net.minecraft.init.Blocks; - - - -public class MTraps -{ - public final MQuicksand QUICKSAND; - public final MQuicksand RED_QUICKSAND; - public final MSwampPit SWAMP_PIT; - public final MMud MUD; - - - public MTraps( ) - { - // FIXME recipes to convert quicksand into sand or mud into dirt - CRegistry.addBlock( this.QUICKSAND = new MQuicksand( "sand" , // - Blocks.SAND.getDefaultState( ) // - .withProperty( BlockSand.VARIANT , BlockSand.EnumType.SAND ) ) ); - CRegistry.addBlock( this.RED_QUICKSAND = new MQuicksand( "red_sand" , // - Blocks.SAND.getDefaultState( ) // - .withProperty( BlockSand.VARIANT , BlockSand.EnumType.RED_SAND ) ) ); - CRegistry.addBlock( this.SWAMP_PIT = new MSwampPit( ) ); - CRegistry.addBlock( this.MUD = new MMud( ) ); - } -} diff --git a/src/java/mmm/materials/MWood.java b/src/java/mmm/materials/MWood.java index 0edf9ed..cba6ba4 100644 --- a/src/java/mmm/materials/MWood.java +++ b/src/java/mmm/materials/MWood.java @@ -2,6 +2,7 @@ package mmm.materials; import mmm.Mmm; +import mmm.materials.trees.MTree; import net.minecraft.block.Block; import net.minecraft.block.BlockPlanks; import net.minecraft.block.material.MapColor; diff --git a/src/java/mmm/materials/MMud.java b/src/java/mmm/materials/traps/MMud.java similarity index 98% rename from src/java/mmm/materials/MMud.java rename to src/java/mmm/materials/traps/MMud.java index a69a03b..22ff4af 100644 --- a/src/java/mmm/materials/MMud.java +++ b/src/java/mmm/materials/traps/MMud.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.traps; import mmm.core.CRegistry; diff --git a/src/java/mmm/materials/MQuicksand.java b/src/java/mmm/materials/traps/MQuicksand.java similarity index 98% rename from src/java/mmm/materials/MQuicksand.java rename to src/java/mmm/materials/traps/MQuicksand.java index af991bd..4479377 100644 --- a/src/java/mmm/materials/MQuicksand.java +++ b/src/java/mmm/materials/traps/MQuicksand.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.traps; import mmm.core.CRegistry; diff --git a/src/java/mmm/materials/MSwampPit.java b/src/java/mmm/materials/traps/MSwampPit.java similarity index 98% rename from src/java/mmm/materials/MSwampPit.java rename to src/java/mmm/materials/traps/MSwampPit.java index 588c934..5ac394b 100644 --- a/src/java/mmm/materials/MSwampPit.java +++ b/src/java/mmm/materials/traps/MSwampPit.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.traps; import mmm.core.api.blocks.I_TintedBlock; diff --git a/src/java/mmm/materials/MTrapBlocks.java b/src/java/mmm/materials/traps/MTraps.java similarity index 59% rename from src/java/mmm/materials/MTrapBlocks.java rename to src/java/mmm/materials/traps/MTraps.java index c28dc3c..b22957d 100644 --- a/src/java/mmm/materials/MTrapBlocks.java +++ b/src/java/mmm/materials/traps/MTraps.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.traps; import java.util.ArrayList; @@ -8,27 +8,51 @@ import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Lists; +import mmm.core.CRegistry; import mmm.core.api.blocks.I_TrapBlock; import net.minecraft.block.Block; +import net.minecraft.block.BlockSand; import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; -public enum MTrapBlocks { - INSTANCE; +public class MTraps +{ + public final MQuicksand QUICKSAND; + public final MQuicksand RED_QUICKSAND; + public final MSwampPit SWAMP_PIT; + public final MMud MUD; private final ArrayListMultimap< IBlockState , I_TrapBlock > traps = ArrayListMultimap.create( ); private final ArrayListMultimap< IBlockState , IBlockState > replacements = ArrayListMultimap.create( ); private final LinkedHashMultimap< IBlockState , String > trapTypes = LinkedHashMultimap.create( ); - public void register( final I_TrapBlock block ) + public MTraps( ) { + // FIXME recipes to convert quicksand into sand or mud into dirt + this.QUICKSAND = this.register( new MQuicksand( "sand" , // + Blocks.SAND.getDefaultState( ) // + .withProperty( BlockSand.VARIANT , BlockSand.EnumType.SAND ) ) ); + this.RED_QUICKSAND = this.register( new MQuicksand( "red_sand" , // + Blocks.SAND.getDefaultState( ) // + .withProperty( BlockSand.VARIANT , BlockSand.EnumType.RED_SAND ) ) ); + this.SWAMP_PIT = this.register( new MSwampPit( ) ); + this.MUD = this.register( new MMud( ) ); + } + + + public < T extends Block & I_TrapBlock > T register( final T block ) + { + Block asMcBlock = (Block) block; for ( final IBlockState state : block.getReplacedBlocks( ) ) { this.traps.put( state , block ); this.trapTypes.put( state , block.getTrapType( ) ); - this.replacements.put( state , ( (Block) block ).getDefaultState( ) ); + this.replacements.put( state , asMcBlock.getDefaultState( ) ); } + CRegistry.addBlock( asMcBlock ); + return block; } @@ -57,5 +81,4 @@ public enum MTrapBlocks { { return Lists.newArrayList( this.trapTypes.get( blockState ) ); } - } diff --git a/src/java/mmm/materials/MLeaves.java b/src/java/mmm/materials/trees/MLeaves.java similarity index 99% rename from src/java/mmm/materials/MLeaves.java rename to src/java/mmm/materials/trees/MLeaves.java index 840ff14..c14d9e5 100644 --- a/src/java/mmm/materials/MLeaves.java +++ b/src/java/mmm/materials/trees/MLeaves.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import java.util.Arrays; diff --git a/src/java/mmm/materials/MLog.java b/src/java/mmm/materials/trees/MLog.java similarity index 99% rename from src/java/mmm/materials/MLog.java rename to src/java/mmm/materials/trees/MLog.java index 33fc9d9..bf53faa 100644 --- a/src/java/mmm/materials/MLog.java +++ b/src/java/mmm/materials/trees/MLog.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import mmm.core.CRegistry; diff --git a/src/java/mmm/materials/MPlanks.java b/src/java/mmm/materials/trees/MPlanks.java similarity index 95% rename from src/java/mmm/materials/MPlanks.java rename to src/java/mmm/materials/trees/MPlanks.java index a98b17d..e7fd4a0 100644 --- a/src/java/mmm/materials/MPlanks.java +++ b/src/java/mmm/materials/trees/MPlanks.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import mmm.core.CRegistry; diff --git a/src/java/mmm/materials/MSapling.java b/src/java/mmm/materials/trees/MSapling.java similarity index 99% rename from src/java/mmm/materials/MSapling.java rename to src/java/mmm/materials/trees/MSapling.java index abca5d3..186e805 100644 --- a/src/java/mmm/materials/MSapling.java +++ b/src/java/mmm/materials/trees/MSapling.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import java.util.Random; diff --git a/src/java/mmm/materials/MTree.java b/src/java/mmm/materials/trees/MTree.java similarity index 99% rename from src/java/mmm/materials/MTree.java rename to src/java/mmm/materials/trees/MTree.java index f6f6d0b..9abf686 100644 --- a/src/java/mmm/materials/MTree.java +++ b/src/java/mmm/materials/trees/MTree.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import java.util.Random; diff --git a/src/java/mmm/materials/MTrees.java b/src/java/mmm/materials/trees/MTrees.java similarity index 97% rename from src/java/mmm/materials/MTrees.java rename to src/java/mmm/materials/trees/MTrees.java index 8e124e4..9d739f1 100644 --- a/src/java/mmm/materials/MTrees.java +++ b/src/java/mmm/materials/trees/MTrees.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import mmm.utils.UMaths; diff --git a/src/java/mmm/materials/MWoodAchievementHandler.java b/src/java/mmm/materials/trees/MWoodAchievementHandler.java similarity index 95% rename from src/java/mmm/materials/MWoodAchievementHandler.java rename to src/java/mmm/materials/trees/MWoodAchievementHandler.java index 50f382f..af16658 100644 --- a/src/java/mmm/materials/MWoodAchievementHandler.java +++ b/src/java/mmm/materials/trees/MWoodAchievementHandler.java @@ -1,4 +1,4 @@ -package mmm.materials; +package mmm.materials.trees; import net.minecraft.item.Item; diff --git a/src/java/mmm/world/gen/WGTrapBlocks.java b/src/java/mmm/world/gen/WGTrapBlocks.java index 5643a72..958396d 100644 --- a/src/java/mmm/world/gen/WGTrapBlocks.java +++ b/src/java/mmm/world/gen/WGTrapBlocks.java @@ -7,7 +7,7 @@ import java.util.Random; import com.google.common.collect.Lists; -import mmm.materials.MTrapBlocks; +import mmm.MmmMaterials; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; @@ -82,7 +82,7 @@ public class WGTrapBlocks final BlockPos pos = bp.add( x , y , z ); final IBlockState atPos = worldIn.getBlockState( pos ); - final List< String > trapTypes = MTrapBlocks.INSTANCE.getTrapTypes( atPos ); + final List< String > trapTypes = MmmMaterials.TRAP.getTrapTypes( atPos ); for ( final String rep : trapTypes ) { if ( !types.contains( rep ) ) { types.add( rep ); @@ -105,7 +105,7 @@ public class WGTrapBlocks final BlockPos pos = bp.add( x , y , z ); final IBlockState atPos = worldIn.getBlockState( pos ); - final List< IBlockState > replacements = MTrapBlocks.INSTANCE.getReplacements( atPos , trapType ); + final List< IBlockState > replacements = MmmMaterials.TRAP.getReplacements( atPos , trapType ); final int nReplacements = replacements.size( ); if ( nReplacements == 0 ) { continue; diff --git a/src/java/mmm/world/trees/A_WTTreeGenerator.java b/src/java/mmm/world/trees/A_WTTreeGenerator.java index 9d4965c..fa18041 100644 --- a/src/java/mmm/world/trees/A_WTTreeGenerator.java +++ b/src/java/mmm/world/trees/A_WTTreeGenerator.java @@ -3,8 +3,8 @@ package mmm.world.trees; import java.util.Random; -import mmm.materials.MSapling; -import mmm.materials.MTree; +import mmm.materials.trees.MSapling; +import mmm.materials.trees.MTree; import net.minecraft.block.Block; import net.minecraft.block.BlockBush; import net.minecraft.block.BlockFlower; diff --git a/src/java/mmm/world/trees/WTBamboo.java b/src/java/mmm/world/trees/WTBamboo.java index f177ca9..38a3505 100644 --- a/src/java/mmm/world/trees/WTBamboo.java +++ b/src/java/mmm/world/trees/WTBamboo.java @@ -4,7 +4,7 @@ package mmm.world.trees; import java.util.Random; import mmm.MmmMaterials; -import mmm.materials.MTree; +import mmm.materials.trees.MTree; import net.minecraft.block.BlockLeaves; import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; diff --git a/src/java/mmm/world/trees/WTHeveaBig.java b/src/java/mmm/world/trees/WTHeveaBig.java index 6ca61cf..9156edf 100644 --- a/src/java/mmm/world/trees/WTHeveaBig.java +++ b/src/java/mmm/world/trees/WTHeveaBig.java @@ -3,7 +3,7 @@ package mmm.world.trees; import java.util.Random; -import mmm.materials.MLog; +import mmm.materials.trees.MLog; import net.minecraft.block.BlockLog; import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; diff --git a/src/java/mmm/world/trees/WTHeveaMega.java b/src/java/mmm/world/trees/WTHeveaMega.java index 9cb7e13..3dad496 100644 --- a/src/java/mmm/world/trees/WTHeveaMega.java +++ b/src/java/mmm/world/trees/WTHeveaMega.java @@ -4,7 +4,7 @@ package mmm.world.trees; import java.util.Random; import mmm.MmmMaterials; -import mmm.materials.MTree; +import mmm.materials.trees.MTree; import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockLog; import net.minecraft.block.state.IBlockState;