Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 817163dbf6 | |||
| d164e279ef | |||
| 4f9b8db6fc | |||
| b58c92ebb6 | |||
| 2667b8eac6 | |||
| 235fad439d | |||
| fcea444041 | |||
| 80f56d4359 | |||
| f14bfa7d53 | |||
| a7d55ee520 | |||
| 7382897e8e | |||
| aac2b598ea | |||
| 0f31cd43d2 | |||
| 788de6d432 | |||
| 04a6a683bc | |||
| 25e433f7bd | |||
| fbc44f47c8 | |||
| 06bca227d0 | |||
| 8321a5fe1c | |||
| 1bb8de3570 | |||
| 8666937117 | |||
| eaf57bedf6 | |||
| a30ef4679c | |||
| 0ee2ca72ac | |||
| 881bb919da | |||
| 5ecd68d5b6 | |||
| e2d0e5d424 | |||
| e3bf7d63c0 | |||
| 3fedcf273b | |||
| 8042dbb3db | |||
| e7e397c412 | |||
| ecc472a692 | |||
| 9790d9fd93 | |||
| f3f89344b4 | |||
| bac94b67b8 | |||
| ba1afcca38 | |||
| bb1c341c95 | |||
| 2ef04f1303 | |||
| 632d048ee2 | |||
| adea6b3dec | |||
| 5416ea2365 |
@@ -22,6 +22,7 @@ apply from: 'gradle/scripts/propertyloader.gradle'
|
|||||||
apply from: 'gradle/scripts/dependencies.gradle'
|
apply from: 'gradle/scripts/dependencies.gradle'
|
||||||
apply from: 'gradle/scripts/artifacts.gradle'
|
apply from: 'gradle/scripts/artifacts.gradle'
|
||||||
apply from: 'gradle/scripts/autoinstallruntime.gradle'
|
apply from: 'gradle/scripts/autoinstallruntime.gradle'
|
||||||
|
apply from: 'gradle/scripts/integration.gradle'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apply plugin: 'idea'
|
||||||
|
|
||||||
|
idea {
|
||||||
|
module {
|
||||||
|
inheritOutputDirs = true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -29,8 +29,8 @@ public enum FuzzyMode
|
|||||||
// Note that percentage damaged, is the inverse of percentage durability.
|
// Note that percentage damaged, is the inverse of percentage durability.
|
||||||
IGNORE_ALL( -1 ), PERCENT_99( 0 ), PERCENT_75( 25 ), PERCENT_50( 50 ), PERCENT_25( 75 );
|
IGNORE_ALL( -1 ), PERCENT_99( 0 ), PERCENT_75( 25 ), PERCENT_50( 50 ), PERCENT_25( 75 );
|
||||||
|
|
||||||
final public float breakPoint;
|
public final float breakPoint;
|
||||||
final public float percentage;
|
public final float percentage;
|
||||||
|
|
||||||
FuzzyMode( float p )
|
FuzzyMode( float p )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public enum PowerUnits
|
|||||||
/**
|
/**
|
||||||
* unlocalized name for the power unit.
|
* unlocalized name for the power unit.
|
||||||
*/
|
*/
|
||||||
final public String unlocalizedName;
|
public final String unlocalizedName;
|
||||||
/**
|
/**
|
||||||
* please do not edit this value, it is set when AE loads its config files.
|
* please do not edit this value, it is set when AE loads its config files.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public enum SecurityPermissions
|
|||||||
*/
|
*/
|
||||||
SECURITY;
|
SECURITY;
|
||||||
|
|
||||||
final private String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
|
private final String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
|
||||||
|
|
||||||
public String getUnlocalizedName()
|
public String getUnlocalizedName()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ import appeng.api.features.ILocatable;
|
|||||||
public class LocatableEventAnnounce extends Event
|
public class LocatableEventAnnounce extends Event
|
||||||
{
|
{
|
||||||
|
|
||||||
final public ILocatable target;
|
public final ILocatable target;
|
||||||
final public LocatableEvent change;
|
public final LocatableEvent change;
|
||||||
|
|
||||||
public LocatableEventAnnounce( ILocatable o, LocatableEvent ev )
|
public LocatableEventAnnounce( ILocatable o, LocatableEvent ev )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package appeng.api.features;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import com.google.common.base.Optional;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registration Records for {@link IInscriberRegistry}
|
||||||
|
*
|
||||||
|
* You have to pay attention though, that recipes are not mirrored,
|
||||||
|
* where the top and bottom slots are switching places.
|
||||||
|
*
|
||||||
|
* This is applied on runtime.
|
||||||
|
*
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv2
|
||||||
|
*/
|
||||||
|
public interface IInscriberRecipe
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* the current inputs
|
||||||
|
*
|
||||||
|
* @return inputs the inscriber will accept
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
List<ItemStack> getInputs();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gets the current output
|
||||||
|
*
|
||||||
|
* @return output that the recipe will produce
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
ItemStack getOutput();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gets the top optional
|
||||||
|
*
|
||||||
|
* @return item which is used top
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
Optional<ItemStack> getTopOptional();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gets the bottom optional
|
||||||
|
*
|
||||||
|
* @return item which is used bottom
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
Optional<ItemStack> getBottomOptional();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* type of inscriber process
|
||||||
|
*
|
||||||
|
* @return type of process the inscriber is doing
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
InscriberProcessType getProcessType();
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
package appeng.api.features;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builder for an inscriber recipe
|
||||||
|
*
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv2
|
||||||
|
*/
|
||||||
|
public interface IInscriberRecipeBuilder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Creates an inscriber recipe with inputs.
|
||||||
|
* Needs to be invoked.
|
||||||
|
*
|
||||||
|
* @param inputs new inputs for the recipe
|
||||||
|
*
|
||||||
|
* @return currently used builder
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipeBuilder withInputs( @Nonnull Collection<ItemStack> inputs );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an inscriber recipe with output.
|
||||||
|
* Needs to be invoked.
|
||||||
|
*
|
||||||
|
* @param output new output for the recipe
|
||||||
|
*
|
||||||
|
* @return currently used builder
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipeBuilder withOutput( @Nonnull ItemStack output );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an inscriber recipe with top.
|
||||||
|
* Either this or bot needs to be invoked.
|
||||||
|
*
|
||||||
|
* @param topOptional new top for the recipe
|
||||||
|
*
|
||||||
|
* @return currently used builder
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipeBuilder withTopOptional( @Nonnull ItemStack topOptional );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an inscriber recipe with bot.
|
||||||
|
* Either this or top needs to be invoked.
|
||||||
|
*
|
||||||
|
* @param bottomOptional new bot for the recipe
|
||||||
|
*
|
||||||
|
* @return currently used builder
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipeBuilder withBottomOptional( @Nonnull ItemStack bottomOptional );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an inscriber recipe with type.
|
||||||
|
* Needs to be invoked.
|
||||||
|
*
|
||||||
|
* @param type new type for the recipe
|
||||||
|
*
|
||||||
|
* @return currently used builder
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipeBuilder withProcessType( @Nonnull InscriberProcessType type );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finalizes the process of making the recipe.
|
||||||
|
* Needs to be invoked to fetch inscriber recipe.
|
||||||
|
*
|
||||||
|
* @return legal inscriber recipe
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException when input is not defined
|
||||||
|
* @throws IllegalStateException when input has no size
|
||||||
|
* @throws IllegalStateException when output is not defined
|
||||||
|
* @throws IllegalStateException when both optionals are not defined
|
||||||
|
* @throws IllegalStateException when process type is not defined
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipe build();
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package appeng.api.features;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lets you manipulate Inscriber Recipes, by adding or editing existing ones.
|
||||||
|
*
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv2
|
||||||
|
*/
|
||||||
|
public interface IInscriberRegistry
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Current list of registered recipes, you can modify this if you want too.
|
||||||
|
* Will never contain a null recipe
|
||||||
|
*
|
||||||
|
* @return currentlyRegisteredRecipes
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
List<IInscriberRecipe> getRecipes();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Optional items which are used in the top or bottom slot
|
||||||
|
*
|
||||||
|
* @return set of all optional items
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
Set<ItemStack> getOptionals();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all registered items which are valid inputs
|
||||||
|
*
|
||||||
|
* @return set of all input items
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
Set<ItemStack> getInputs();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extensible way to create an inscriber recipe
|
||||||
|
*
|
||||||
|
* @return builder for inscriber recipes
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IInscriberRecipeBuilder builder();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* add a new recipe the easy way, duplicates will not be added.
|
||||||
|
* Added recipes will be automatically added to the optionals and inputs.
|
||||||
|
*
|
||||||
|
* @param recipe new recipe
|
||||||
|
*
|
||||||
|
* @throws IllegalArgumentException if null is added
|
||||||
|
*/
|
||||||
|
void addRecipe( IInscriberRecipe recipe );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes a recipe from the registry
|
||||||
|
*
|
||||||
|
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense
|
||||||
|
*/
|
||||||
|
void removeRecipe( IInscriberRecipe toBeRemovedRecipe );
|
||||||
|
}
|
||||||
@@ -30,6 +30,12 @@ import appeng.api.storage.ICellRegistry;
|
|||||||
import appeng.api.storage.IExternalStorageRegistry;
|
import appeng.api.storage.IExternalStorageRegistry;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author AlgorithmX2
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv0
|
||||||
|
*/
|
||||||
public interface IRegistryContainer
|
public interface IRegistryContainer
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -69,6 +75,11 @@ public interface IRegistryContainer
|
|||||||
*/
|
*/
|
||||||
IGrinderRegistry grinder();
|
IGrinderRegistry grinder();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Manage inscriber recipes via API
|
||||||
|
*/
|
||||||
|
IInscriberRegistry inscriber();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get access to the locatable registry
|
* get access to the locatable registry
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package appeng.api.features;
|
||||||
|
|
||||||
|
|
||||||
|
public enum InscriberProcessType
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* uses the optionals as catalyst
|
||||||
|
*/
|
||||||
|
Inscribe,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* spends the optionals
|
||||||
|
*/
|
||||||
|
Press
|
||||||
|
}
|
||||||
@@ -30,9 +30,9 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
public class ResolverResult
|
public class ResolverResult
|
||||||
{
|
{
|
||||||
|
|
||||||
final public String itemName;
|
public final String itemName;
|
||||||
final public int damageValue;
|
public final int damageValue;
|
||||||
final public NBTTagCompound compound;
|
public final NBTTagCompound compound;
|
||||||
|
|
||||||
public ResolverResult( String name, int damage )
|
public ResolverResult( String name, int damage )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -77,22 +77,22 @@ public enum AEColor
|
|||||||
/**
|
/**
|
||||||
* Unlocalized name for color.
|
* Unlocalized name for color.
|
||||||
*/
|
*/
|
||||||
final public String unlocalizedName;
|
public final String unlocalizedName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Darkest Variant of the color, nearly black; as a RGB HEX Integer
|
* Darkest Variant of the color, nearly black; as a RGB HEX Integer
|
||||||
*/
|
*/
|
||||||
final public int blackVariant;
|
public final int blackVariant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Variant of the color that is used to represent the color normally; as a RGB HEX Integer
|
* The Variant of the color that is used to represent the color normally; as a RGB HEX Integer
|
||||||
*/
|
*/
|
||||||
final public int mediumVariant;
|
public final int mediumVariant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lightest Variant of the color, nearly white; as a RGB HEX Integer
|
* Lightest Variant of the color, nearly white; as a RGB HEX Integer
|
||||||
*/
|
*/
|
||||||
final public int whiteVariant;
|
public final int whiteVariant;
|
||||||
|
|
||||||
AEColor( String unlocalizedName, int blackHex, int medHex, int whiteHex )
|
AEColor( String unlocalizedName, int blackHex, int medHex, int whiteHex )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public IFeatureHandler handler()
|
public final IFeatureHandler handler()
|
||||||
{
|
{
|
||||||
return this.handler;
|
return this.handler;
|
||||||
}
|
}
|
||||||
@@ -279,7 +279,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly( Side.CLIENT )
|
@SideOnly( Side.CLIENT )
|
||||||
final public AxisAlignedBB getSelectedBoundingBoxFromPool( World w, int x, int y, int z )
|
public final AxisAlignedBB getSelectedBoundingBoxFromPool( World w, int x, int y, int z )
|
||||||
{
|
{
|
||||||
ICustomCollision collisionHandler = null;
|
ICustomCollision collisionHandler = null;
|
||||||
AxisAlignedBB b = null;
|
AxisAlignedBB b = null;
|
||||||
@@ -360,7 +360,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public boolean isOpaqueCube()
|
public final boolean isOpaqueCube()
|
||||||
{
|
{
|
||||||
return this.isOpaque;
|
return this.isOpaque;
|
||||||
}
|
}
|
||||||
@@ -421,7 +421,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public boolean onBlockActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
public final boolean onBlockActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||||
{
|
{
|
||||||
if( player != null )
|
if( player != null )
|
||||||
{
|
{
|
||||||
@@ -566,13 +566,13 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public boolean isNormalCube( IBlockAccess world, int x, int y, int z )
|
public final boolean isNormalCube( IBlockAccess world, int x, int y, int z )
|
||||||
{
|
{
|
||||||
return this.isFullSize;
|
return this.isFullSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public boolean rotateBlock( World w, int x, int y, int z, ForgeDirection axis )
|
public final boolean rotateBlock( World w, int x, int y, int z, ForgeDirection axis )
|
||||||
{
|
{
|
||||||
IOrientable rotatable = null;
|
IOrientable rotatable = null;
|
||||||
|
|
||||||
@@ -630,7 +630,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public ForgeDirection[] getValidRotations( World w, int x, int y, int z )
|
public final ForgeDirection[] getValidRotations( World w, int x, int y, int z )
|
||||||
{
|
{
|
||||||
if( this.hasBlockTileEntity() )
|
if( this.hasBlockTileEntity() )
|
||||||
{
|
{
|
||||||
@@ -787,7 +787,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public TileEntity createNewTileEntity( World var1, int var2 )
|
public final TileEntity createNewTileEntity( World var1, int var2 )
|
||||||
{
|
{
|
||||||
if( this.hasBlockTileEntity() )
|
if( this.hasBlockTileEntity() )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -162,8 +162,6 @@ public class AEBaseItemBlock extends ItemBlock
|
|||||||
forward = ForgeDirection.SOUTH;
|
forward = ForgeDirection.SOUTH;
|
||||||
if( up.offsetY == 0 )
|
if( up.offsetY == 0 )
|
||||||
forward = ForgeDirection.UP;
|
forward = ForgeDirection.UP;
|
||||||
|
|
||||||
ori.setOrientation( forward, up );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !this.blockType.isValidOrientation( w, x, y, z, forward, up ) )
|
if( !this.blockType.isValidOrientation( w, x, y, z, forward, up ) )
|
||||||
|
|||||||
@@ -46,10 +46,10 @@ public class BlockMolecularAssembler extends AEBaseBlock
|
|||||||
public BlockMolecularAssembler()
|
public BlockMolecularAssembler()
|
||||||
{
|
{
|
||||||
super( BlockMolecularAssembler.class, Material.iron );
|
super( BlockMolecularAssembler.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.MolecularAssembler ) );
|
|
||||||
this.setTileEntity( TileMolecularAssembler.class );
|
this.setTileEntity( TileMolecularAssembler.class );
|
||||||
this.isOpaque = false;
|
this.isOpaque = false;
|
||||||
this.lightOpacity = 1;
|
this.lightOpacity = 1;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.MolecularAssembler ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -47,11 +47,11 @@ public class BlockCrank extends AEBaseBlock
|
|||||||
public BlockCrank()
|
public BlockCrank()
|
||||||
{
|
{
|
||||||
super( BlockCrank.class, Material.wood );
|
super( BlockCrank.class, Material.wood );
|
||||||
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
|
|
||||||
this.setTileEntity( TileCrank.class );
|
this.setTileEntity( TileCrank.class );
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.setHarvestLevel( "axe", 0 );
|
this.setHarvestLevel( "axe", 0 );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -39,9 +39,9 @@ public class BlockGrinder extends AEBaseBlock
|
|||||||
public BlockGrinder()
|
public BlockGrinder()
|
||||||
{
|
{
|
||||||
super( BlockGrinder.class, Material.rock );
|
super( BlockGrinder.class, Material.rock );
|
||||||
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
|
|
||||||
this.setTileEntity( TileGrinder.class );
|
this.setTileEntity( TileGrinder.class );
|
||||||
this.setHardness( 3.2F );
|
this.setHardness( 3.2F );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ public class BlockCellWorkbench extends AEBaseBlock
|
|||||||
public BlockCellWorkbench()
|
public BlockCellWorkbench()
|
||||||
{
|
{
|
||||||
super( BlockCellWorkbench.class, Material.iron );
|
super( BlockCellWorkbench.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.StorageCells ) );
|
|
||||||
this.setTileEntity( TileCellWorkbench.class );
|
this.setTileEntity( TileCellWorkbench.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.StorageCells ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,10 +55,10 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockCharger()
|
public BlockCharger()
|
||||||
{
|
{
|
||||||
super( BlockCharger.class, Material.iron );
|
super( BlockCharger.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setTileEntity( TileCharger.class );
|
this.setTileEntity( TileCharger.class );
|
||||||
this.setLightOpacity( 2 );
|
this.setLightOpacity( 2 );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ public class BlockCondenser extends AEBaseBlock
|
|||||||
public BlockCondenser()
|
public BlockCondenser()
|
||||||
{
|
{
|
||||||
super( BlockCondenser.class, Material.iron );
|
super( BlockCondenser.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setTileEntity( TileCondenser.class );
|
this.setTileEntity( TileCondenser.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,10 +41,10 @@ public class BlockInscriber extends AEBaseBlock
|
|||||||
public BlockInscriber()
|
public BlockInscriber()
|
||||||
{
|
{
|
||||||
super( BlockInscriber.class, Material.iron );
|
super( BlockInscriber.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Inscriber ) );
|
|
||||||
this.setTileEntity( TileInscriber.class );
|
this.setTileEntity( TileInscriber.class );
|
||||||
this.setLightOpacity( 2 );
|
this.setLightOpacity( 2 );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Inscriber ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ public class BlockInterface extends AEBaseBlock
|
|||||||
public BlockInterface()
|
public BlockInterface()
|
||||||
{
|
{
|
||||||
super( BlockInterface.class, Material.iron );
|
super( BlockInterface.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setTileEntity( TileInterface.class );
|
this.setTileEntity( TileInterface.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ public class BlockLightDetector extends BlockQuartzTorch
|
|||||||
public BlockLightDetector()
|
public BlockLightDetector()
|
||||||
{
|
{
|
||||||
super( BlockLightDetector.class );
|
super( BlockLightDetector.class );
|
||||||
this.setFeature( EnumSet.of( AEFeature.LightDetector ) );
|
|
||||||
this.setTileEntity( TileLightDetector.class );
|
this.setTileEntity( TileLightDetector.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.LightDetector ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ public class BlockPaint extends AEBaseBlock
|
|||||||
public BlockPaint()
|
public BlockPaint()
|
||||||
{
|
{
|
||||||
super( BlockPaint.class, new MaterialLiquid( MapColor.airColor ) );
|
super( BlockPaint.class, new MaterialLiquid( MapColor.airColor ) );
|
||||||
this.setFeature( EnumSet.of( AEFeature.PaintBalls ) );
|
|
||||||
this.setTileEntity( TilePaint.class );
|
this.setTileEntity( TilePaint.class );
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.isFullSize = false;
|
this.isFullSize = false;
|
||||||
this.isOpaque = false;
|
this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.PaintBalls ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
|
|||||||
{
|
{
|
||||||
super( BlockQuartzGrowthAccelerator.class, Material.rock );
|
super( BlockQuartzGrowthAccelerator.class, Material.rock );
|
||||||
this.setStepSound( Block.soundTypeMetal );
|
this.setStepSound( Block.soundTypeMetal );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setTileEntity( TileQuartzGrowthAccelerator.class );
|
this.setTileEntity( TileQuartzGrowthAccelerator.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -55,8 +55,8 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
|||||||
public BlockQuartzTorch()
|
public BlockQuartzTorch()
|
||||||
{
|
{
|
||||||
this( BlockQuartzTorch.class );
|
this( BlockQuartzTorch.class );
|
||||||
this.setFeature( EnumSet.of( AEFeature.DecorativeLights ) );
|
|
||||||
this.setLightLevel( 0.9375F );
|
this.setLightLevel( 0.9375F );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.DecorativeLights ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BlockQuartzTorch( Class which )
|
protected BlockQuartzTorch( Class which )
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class BlockSecurity extends AEBaseBlock
|
|||||||
public BlockSecurity()
|
public BlockSecurity()
|
||||||
{
|
{
|
||||||
super( BlockSecurity.class, Material.iron );
|
super( BlockSecurity.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Security ) );
|
|
||||||
this.setTileEntity( TileSecurity.class );
|
this.setTileEntity( TileSecurity.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Security ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -50,10 +50,10 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockSkyCompass()
|
public BlockSkyCompass()
|
||||||
{
|
{
|
||||||
super( BlockSkyCompass.class, Material.iron );
|
super( BlockSkyCompass.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.MeteoriteCompass ) );
|
|
||||||
this.setTileEntity( TileSkyCompass.class );
|
this.setTileEntity( TileSkyCompass.class );
|
||||||
this.isOpaque = this.isFullSize = false;
|
this.isOpaque = this.isFullSize = false;
|
||||||
this.lightOpacity = 0;
|
this.lightOpacity = 0;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.MeteoriteCompass ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -59,12 +59,12 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockTinyTNT()
|
public BlockTinyTNT()
|
||||||
{
|
{
|
||||||
super( BlockTinyTNT.class, Material.tnt );
|
super( BlockTinyTNT.class, Material.tnt );
|
||||||
this.setFeature( EnumSet.of( AEFeature.TinyTNT ) );
|
|
||||||
this.setLightOpacity( 1 );
|
this.setLightOpacity( 1 );
|
||||||
this.setBlockBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f );
|
this.setBlockBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
this.setStepSound( soundTypeGrass );
|
this.setStepSound( soundTypeGrass );
|
||||||
this.setHardness( 0F );
|
this.setHardness( 0F );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.TinyTNT ) );
|
||||||
|
|
||||||
EntityRegistry.registerModEntity( EntityTinyTNTPrimed.class, "EntityTinyTNTPrimed", EntityIds.TINY_TNT, AppEng.instance, 16, 4, true );
|
EntityRegistry.registerModEntity( EntityTinyTNTPrimed.class, "EntityTinyTNTPrimed", EntityIds.TINY_TNT, AppEng.instance, 16, 4, true );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ public class BlockVibrationChamber extends AEBaseBlock
|
|||||||
public BlockVibrationChamber()
|
public BlockVibrationChamber()
|
||||||
{
|
{
|
||||||
super( BlockVibrationChamber.class, Material.iron );
|
super( BlockVibrationChamber.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.PowerGen ) );
|
|
||||||
this.setTileEntity( TileVibrationChamber.class );
|
this.setTileEntity( TileVibrationChamber.class );
|
||||||
this.setHardness( 4.2F );
|
this.setHardness( 4.2F );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.PowerGen ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -81,8 +81,8 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
|||||||
{
|
{
|
||||||
|
|
||||||
private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer();
|
private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer();
|
||||||
static public Class<? extends TileEntity> noTesrTile;
|
public static Class<? extends TileEntity> noTesrTile;
|
||||||
static public Class<? extends TileEntity> tesrTile;
|
public static Class<? extends TileEntity> tesrTile;
|
||||||
/**
|
/**
|
||||||
* Immibis MB Support.
|
* Immibis MB Support.
|
||||||
*/
|
*/
|
||||||
@@ -92,9 +92,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
|||||||
public BlockCableBus()
|
public BlockCableBus()
|
||||||
{
|
{
|
||||||
super( BlockCableBus.class, AEGlassMaterial.INSTANCE );
|
super( BlockCableBus.class, AEGlassMaterial.INSTANCE );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ public class BlockController extends AEBaseBlock
|
|||||||
public BlockController()
|
public BlockController()
|
||||||
{
|
{
|
||||||
super( BlockController.class, Material.iron );
|
super( BlockController.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Channels ) );
|
|
||||||
this.setTileEntity( TileController.class );
|
this.setTileEntity( TileController.class );
|
||||||
this.setHardness( 6 );
|
this.setHardness( 6 );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Channels ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class BlockCreativeEnergyCell extends AEBaseBlock
|
|||||||
public BlockCreativeEnergyCell()
|
public BlockCreativeEnergyCell()
|
||||||
{
|
{
|
||||||
super( BlockCreativeEnergyCell.class, AEGlassMaterial.INSTANCE );
|
super( BlockCreativeEnergyCell.class, AEGlassMaterial.INSTANCE );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Creative ) );
|
|
||||||
this.setTileEntity( TileCreativeEnergyCell.class );
|
this.setTileEntity( TileCreativeEnergyCell.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Creative ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ public class BlockDenseEnergyCell extends BlockEnergyCell
|
|||||||
public BlockDenseEnergyCell()
|
public BlockDenseEnergyCell()
|
||||||
{
|
{
|
||||||
super( BlockDenseEnergyCell.class );
|
super( BlockDenseEnergyCell.class );
|
||||||
this.setFeature( EnumSet.of( AEFeature.DenseEnergyCells ) );
|
|
||||||
this.setTileEntity( TileDenseEnergyCell.class );
|
this.setTileEntity( TileDenseEnergyCell.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.DenseEnergyCells ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class BlockEnergyAcceptor extends AEBaseBlock
|
|||||||
public BlockEnergyAcceptor()
|
public BlockEnergyAcceptor()
|
||||||
{
|
{
|
||||||
super( BlockEnergyAcceptor.class, Material.iron );
|
super( BlockEnergyAcceptor.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setTileEntity( TileEnergyAcceptor.class );
|
this.setTileEntity( TileEnergyAcceptor.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ public class BlockEnergyCell extends AEBaseBlock
|
|||||||
public BlockEnergyCell()
|
public BlockEnergyCell()
|
||||||
{
|
{
|
||||||
this( BlockEnergyCell.class );
|
this( BlockEnergyCell.class );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setTileEntity( TileEnergyCell.class );
|
this.setTileEntity( TileEnergyCell.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlockEnergyCell( Class c )
|
public BlockEnergyCell( Class c )
|
||||||
|
|||||||
@@ -46,11 +46,11 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockWireless()
|
public BlockWireless()
|
||||||
{
|
{
|
||||||
super( BlockWireless.class, AEGlassMaterial.INSTANCE );
|
super( BlockWireless.class, AEGlassMaterial.INSTANCE );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.WirelessAccessTerminal ) );
|
|
||||||
this.setTileEntity( TileWireless.class );
|
this.setTileEntity( TileWireless.class );
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.isFullSize = false;
|
this.isFullSize = false;
|
||||||
this.isOpaque = false;
|
this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.WirelessAccessTerminal ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -53,12 +53,12 @@ public class BlockQuantumLinkChamber extends AEBaseBlock implements ICustomColli
|
|||||||
public BlockQuantumLinkChamber()
|
public BlockQuantumLinkChamber()
|
||||||
{
|
{
|
||||||
super( BlockQuantumLinkChamber.class, AEGlassMaterial.INSTANCE );
|
super( BlockQuantumLinkChamber.class, AEGlassMaterial.INSTANCE );
|
||||||
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
|
|
||||||
this.setTileEntity( TileQuantumBridge.class );
|
this.setTileEntity( TileQuantumBridge.class );
|
||||||
float shave = 2.0f / 16.0f;
|
float shave = 2.0f / 16.0f;
|
||||||
this.setBlockBounds( shave, shave, shave, 1.0f - shave, 1.0f - shave, 1.0f - shave );
|
this.setBlockBounds( shave, shave, shave, 1.0f - shave, 1.0f - shave, 1.0f - shave );
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -43,12 +43,12 @@ public class BlockQuantumRing extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockQuantumRing()
|
public BlockQuantumRing()
|
||||||
{
|
{
|
||||||
super( BlockQuantumRing.class, Material.iron );
|
super( BlockQuantumRing.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
|
|
||||||
this.setTileEntity( TileQuantumBridge.class );
|
this.setTileEntity( TileQuantumBridge.class );
|
||||||
float shave = 2.0f / 16.0f;
|
float shave = 2.0f / 16.0f;
|
||||||
this.setBlockBounds( shave, shave, shave, 1.0f - shave, 1.0f - shave, 1.0f - shave );
|
this.setBlockBounds( shave, shave, shave, 1.0f - shave, 1.0f - shave, 1.0f - shave );
|
||||||
this.setLightOpacity( 1 );
|
this.setLightOpacity( 1 );
|
||||||
this.isFullSize = this.isOpaque = false;
|
this.isFullSize = this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ public class BlockQuartzGlass extends AEBaseBlock
|
|||||||
public BlockQuartzGlass( Class c )
|
public BlockQuartzGlass( Class c )
|
||||||
{
|
{
|
||||||
super( c, Material.glass );
|
super( c, Material.glass );
|
||||||
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) );
|
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.isOpaque = false;
|
this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ public class BlockQuartzLamp extends BlockQuartzGlass
|
|||||||
public BlockQuartzLamp()
|
public BlockQuartzLamp()
|
||||||
{
|
{
|
||||||
super( BlockQuartzLamp.class );
|
super( BlockQuartzLamp.class );
|
||||||
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks, AEFeature.DecorativeLights ) );
|
|
||||||
this.setLightLevel( 1.0f );
|
this.setLightLevel( 1.0f );
|
||||||
this.setBlockTextureName( "BlockQuartzGlass" );
|
this.setBlockTextureName( "BlockQuartzGlass" );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks, AEFeature.DecorativeLights ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -72,11 +72,12 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
|
|||||||
public BlockSkyStone()
|
public BlockSkyStone()
|
||||||
{
|
{
|
||||||
super( BlockSkyStone.class, Material.rock );
|
super( BlockSkyStone.class, Material.rock );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setHardness( 50 );
|
this.setHardness( 50 );
|
||||||
this.hasSubtypes = true;
|
this.hasSubtypes = true;
|
||||||
this.blockResistance = 150.0f;
|
this.blockResistance = 150.0f;
|
||||||
this.setHarvestLevel( "pickaxe", 3, 0 );
|
this.setHarvestLevel( "pickaxe", 3, 0 );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register( this );
|
MinecraftForge.EVENT_BUS.register( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,12 +53,12 @@ public class OreQuartz extends AEBaseBlock
|
|||||||
public OreQuartz( Class<? extends OreQuartz> self )
|
public OreQuartz( Class<? extends OreQuartz> self )
|
||||||
{
|
{
|
||||||
super( self, Material.rock );
|
super( self, Material.rock );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
|
||||||
this.setHardness( 3.0F );
|
this.setHardness( 3.0F );
|
||||||
this.setResistance( 5.0F );
|
this.setResistance( 5.0F );
|
||||||
this.boostBrightnessLow = 0;
|
this.boostBrightnessLow = 0;
|
||||||
this.boostBrightnessHigh = 1;
|
this.boostBrightnessHigh = 1;
|
||||||
this.enhanceBrightness = false;
|
this.enhanceBrightness = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ public class BlockMatrixFrame extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockMatrixFrame()
|
public BlockMatrixFrame()
|
||||||
{
|
{
|
||||||
super( BlockMatrixFrame.class, Material.anvil );
|
super( BlockMatrixFrame.class, Material.anvil );
|
||||||
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
|
|
||||||
this.setResistance( 6000000.0F );
|
this.setResistance( 6000000.0F );
|
||||||
this.setBlockUnbreakable();
|
this.setBlockUnbreakable();
|
||||||
this.setLightOpacity( 0 );
|
this.setLightOpacity( 0 );
|
||||||
this.isOpaque = false;
|
this.isOpaque = false;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ public class BlockSpatialIOPort extends AEBaseBlock
|
|||||||
public BlockSpatialIOPort()
|
public BlockSpatialIOPort()
|
||||||
{
|
{
|
||||||
super( BlockSpatialIOPort.class, Material.iron );
|
super( BlockSpatialIOPort.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
|
|
||||||
this.setTileEntity( TileSpatialIOPort.class );
|
this.setTileEntity( TileSpatialIOPort.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ public class BlockSpatialPylon extends AEBaseBlock
|
|||||||
public BlockSpatialPylon()
|
public BlockSpatialPylon()
|
||||||
{
|
{
|
||||||
super( BlockSpatialPylon.class, AEGlassMaterial.INSTANCE );
|
super( BlockSpatialPylon.class, AEGlassMaterial.INSTANCE );
|
||||||
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
|
|
||||||
this.setTileEntity( TileSpatialPylon.class );
|
this.setTileEntity( TileSpatialPylon.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ public class BlockChest extends AEBaseBlock
|
|||||||
public BlockChest()
|
public BlockChest()
|
||||||
{
|
{
|
||||||
super( BlockChest.class, Material.iron );
|
super( BlockChest.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEChest ) );
|
|
||||||
this.setTileEntity( TileChest.class );
|
this.setTileEntity( TileChest.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEChest ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class BlockDrive extends AEBaseBlock
|
|||||||
public BlockDrive()
|
public BlockDrive()
|
||||||
{
|
{
|
||||||
super( BlockDrive.class, Material.iron );
|
super( BlockDrive.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEDrive ) );
|
|
||||||
this.setTileEntity( TileDrive.class );
|
this.setTileEntity( TileDrive.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEDrive ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ public class BlockIOPort extends AEBaseBlock
|
|||||||
public BlockIOPort()
|
public BlockIOPort()
|
||||||
{
|
{
|
||||||
super( BlockIOPort.class, Material.iron );
|
super( BlockIOPort.class, Material.iron );
|
||||||
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.IOPort ) );
|
|
||||||
this.setTileEntity( TileIOPort.class );
|
this.setTileEntity( TileIOPort.class );
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.IOPort ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -58,13 +58,13 @@ public class BlockSkyChest extends AEBaseBlock implements ICustomCollision
|
|||||||
public BlockSkyChest()
|
public BlockSkyChest()
|
||||||
{
|
{
|
||||||
super( BlockSkyChest.class, Material.rock );
|
super( BlockSkyChest.class, Material.rock );
|
||||||
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.SkyStoneChests ) );
|
|
||||||
this.setTileEntity( TileSkyChest.class );
|
this.setTileEntity( TileSkyChest.class );
|
||||||
this.isOpaque = this.isFullSize = false;
|
this.isOpaque = this.isFullSize = false;
|
||||||
this.lightOpacity = 0;
|
this.lightOpacity = 0;
|
||||||
this.hasSubtypes = true;
|
this.hasSubtypes = true;
|
||||||
this.setHardness( 50 );
|
this.setHardness( 50 );
|
||||||
this.blockResistance = 150.0f;
|
this.blockResistance = 150.0f;
|
||||||
|
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.SkyStoneChests ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final protected void drawGuiContainerForegroundLayer( int x, int y )
|
protected final void drawGuiContainerForegroundLayer( int x, int y )
|
||||||
{
|
{
|
||||||
int ox = this.guiLeft; // (width - xSize) / 2;
|
int ox = this.guiLeft; // (width - xSize) / 2;
|
||||||
int oy = this.guiTop; // (height - ySize) / 2;
|
int oy = this.guiTop; // (height - ySize) / 2;
|
||||||
@@ -285,7 +285,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
public abstract void drawFG( int offsetX, int offsetY, int mouseX, int mouseY );
|
public abstract void drawFG( int offsetX, int offsetY, int mouseX, int mouseY );
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final protected void drawGuiContainerBackgroundLayer( float f, int x, int y )
|
protected final void drawGuiContainerBackgroundLayer( float f, int x, int y )
|
||||||
{
|
{
|
||||||
int ox = this.guiLeft; // (width - xSize) / 2;
|
int ox = this.guiLeft; // (width - xSize) / 2;
|
||||||
int oy = this.guiTop; // (height - ySize) / 2;
|
int oy = this.guiTop; // (height - ySize) / 2;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import net.minecraft.item.ItemStack;
|
|||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
import appeng.client.me.SlotME;
|
import appeng.client.me.SlotME;
|
||||||
import appeng.core.AEConfig;
|
import appeng.core.AEConfig;
|
||||||
|
import appeng.core.localization.ButtonToolTips;
|
||||||
|
|
||||||
|
|
||||||
public abstract class AEBaseMEGui extends AEBaseGui
|
public abstract class AEBaseMEGui extends AEBaseGui
|
||||||
@@ -63,14 +64,30 @@ public abstract class AEBaseMEGui extends AEBaseGui
|
|||||||
if( myStack != null )
|
if( myStack != null )
|
||||||
{
|
{
|
||||||
if( myStack.getStackSize() > BigNumber || ( myStack.getStackSize() > 1 && stack.isItemDamaged() ) )
|
if( myStack.getStackSize() > BigNumber || ( myStack.getStackSize() > 1 && stack.isItemDamaged() ) )
|
||||||
currentToolTip.add( "\u00a77Items Stored: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getStackSize() ) );
|
{
|
||||||
|
final String local = ButtonToolTips.ItemsStored.getLocal();
|
||||||
|
final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( myStack.getStackSize() );
|
||||||
|
final String format = String.format( local, formattedAmount );
|
||||||
|
|
||||||
|
currentToolTip.add( "\u00a77" + format );
|
||||||
|
}
|
||||||
|
|
||||||
if( myStack.getCountRequestable() > 0 )
|
if( myStack.getCountRequestable() > 0 )
|
||||||
currentToolTip.add( "\u00a77Items Requestable: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getCountRequestable() ) );
|
{
|
||||||
|
final String local = ButtonToolTips.ItemsRequestable.getLocal();
|
||||||
|
final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( myStack.getCountRequestable() );
|
||||||
|
final String format = String.format( local, formattedAmount );
|
||||||
|
|
||||||
|
currentToolTip.add( "\u00a77" + format );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if( stack.stackSize > BigNumber || ( stack.stackSize > 1 && stack.isItemDamaged() ) )
|
else if( stack.stackSize > BigNumber || ( stack.stackSize > 1 && stack.isItemDamaged() ) )
|
||||||
{
|
{
|
||||||
currentToolTip.add( "\u00a77Items Stored: " + NumberFormat.getNumberInstance( Locale.US ).format( stack.stackSize ) );
|
final String local = ButtonToolTips.ItemsStored.getLocal();
|
||||||
|
final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( stack.stackSize );
|
||||||
|
final String format = String.format( local, formattedAmount );
|
||||||
|
|
||||||
|
currentToolTip.add( "\u00a77" + format );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class GuiMEPortableCell extends GuiMEMonitorable
|
|||||||
|
|
||||||
public GuiMEPortableCell( InventoryPlayer inventoryPlayer, IPortableCell te )
|
public GuiMEPortableCell( InventoryPlayer inventoryPlayer, IPortableCell te )
|
||||||
{
|
{
|
||||||
super( inventoryPlayer, te, new ContainerMEPortableCell( inventoryPlayer, null ) );
|
super( inventoryPlayer, te, new ContainerMEPortableCell( inventoryPlayer, te ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
int defaultGetMaxRows()
|
int defaultGetMaxRows()
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class GuiVibrationChamber extends AEBaseGui
|
|||||||
int k = 25;
|
int k = 25;
|
||||||
int l = -15;
|
int l = -15;
|
||||||
|
|
||||||
this.pb.setFullMsg( this.cvc.aePerTick * this.cvc.getCurrentProgress() / 100 + " ae/t" );
|
this.pb.setFullMsg( this.cvc.aePerTick * this.cvc.getCurrentProgress() / 100 + " AE/t" );
|
||||||
|
|
||||||
if( this.cvc.getCurrentProgress() > 0 )
|
if( this.cvc.getCurrentProgress() > 0 )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ import appeng.util.ItemSorters;
|
|||||||
public class ClientDCInternalInv implements Comparable<ClientDCInternalInv>
|
public class ClientDCInternalInv implements Comparable<ClientDCInternalInv>
|
||||||
{
|
{
|
||||||
|
|
||||||
final public String unlocalizedName;
|
public final String unlocalizedName;
|
||||||
final public AppEngInternalInventory inv;
|
public final AppEngInternalInventory inv;
|
||||||
final public long id;
|
public final long id;
|
||||||
final public long sortBy;
|
public final long sortBy;
|
||||||
|
|
||||||
public ClientDCInternalInv( int size, long id, long sortBy, String unlocalizedName )
|
public ClientDCInternalInv( int size, long id, long sortBy, String unlocalizedName )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -49,11 +49,11 @@ import appeng.util.prioitylist.IPartitionList;
|
|||||||
public class ItemRepo
|
public class ItemRepo
|
||||||
{
|
{
|
||||||
|
|
||||||
final private IItemList<IAEItemStack> list = AEApi.instance().storage().createItemList();
|
private final IItemList<IAEItemStack> list = AEApi.instance().storage().createItemList();
|
||||||
final private ArrayList<IAEItemStack> view = new ArrayList<IAEItemStack>();
|
private final ArrayList<IAEItemStack> view = new ArrayList<IAEItemStack>();
|
||||||
final private ArrayList<ItemStack> dsp = new ArrayList<ItemStack>();
|
private final ArrayList<ItemStack> dsp = new ArrayList<ItemStack>();
|
||||||
final private IScrollSource src;
|
private final IScrollSource src;
|
||||||
final private ISortSource sortSrc;
|
private final ISortSource sortSrc;
|
||||||
|
|
||||||
public int rowSize = 9;
|
public int rowSize = 9;
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import net.minecraft.item.ItemStack;
|
|||||||
|
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
import appeng.core.AEConfig;
|
import appeng.core.AEConfig;
|
||||||
|
import appeng.core.localization.GuiText;
|
||||||
import appeng.util.ReadableNumberConverter;
|
import appeng.util.ReadableNumberConverter;
|
||||||
|
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ public class AppEngRenderItem extends RenderItem
|
|||||||
|
|
||||||
if( is.stackSize == 0 )
|
if( is.stackSize == 0 )
|
||||||
{
|
{
|
||||||
String craftLabelText = AEConfig.instance.useTerminalUseLargeFont() ? "+" : "Craft";
|
String craftLabelText = AEConfig.instance.useTerminalUseLargeFont() ? GuiText.LargeFontCraft.getLocal() : GuiText.SmallFontCraft.getLocal();
|
||||||
GL11.glDisable( GL11.GL_LIGHTING );
|
GL11.glDisable( GL11.GL_LIGHTING );
|
||||||
GL11.glDisable( GL11.GL_DEPTH_TEST );
|
GL11.glDisable( GL11.GL_DEPTH_TEST );
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
@@ -128,7 +129,7 @@ public class AppEngRenderItem extends RenderItem
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return NUMBER_CONVERTER.toHumanReadableForm( originalSize );
|
return NUMBER_CONVERTER.toLongHumanReadableForm( originalSize );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class BaseBlockRender
|
|||||||
setOriMap();
|
setOriMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
static public void setOriMap()
|
public static void setOriMap()
|
||||||
{
|
{
|
||||||
// pointed up...
|
// pointed up...
|
||||||
ORIENTATION_MAP[0][3][1] = 0;
|
ORIENTATION_MAP[0][3][1] = 0;
|
||||||
@@ -309,7 +309,7 @@ public class BaseBlockRender
|
|||||||
renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0;
|
renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static public int getOrientation( ForgeDirection in, ForgeDirection forward, ForgeDirection up )
|
public static int getOrientation( ForgeDirection in, ForgeDirection forward, ForgeDirection up )
|
||||||
{
|
{
|
||||||
if( in == null || in == ForgeDirection.UNKNOWN // 1
|
if( in == null || in == ForgeDirection.UNKNOWN // 1
|
||||||
|| forward == null || forward == ForgeDirection.UNKNOWN // 2
|
|| forward == null || forward == ForgeDirection.UNKNOWN // 2
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import appeng.client.texture.TmpFlippableIcon;
|
|||||||
public class BlockRenderInfo
|
public class BlockRenderInfo
|
||||||
{
|
{
|
||||||
|
|
||||||
final public BaseBlockRender rendererInstance;
|
public final BaseBlockRender rendererInstance;
|
||||||
private final TmpFlippableIcon tmpTopIcon = new TmpFlippableIcon();
|
private final TmpFlippableIcon tmpTopIcon = new TmpFlippableIcon();
|
||||||
private final TmpFlippableIcon tmpBottomIcon = new TmpFlippableIcon();
|
private final TmpFlippableIcon tmpBottomIcon = new TmpFlippableIcon();
|
||||||
private final TmpFlippableIcon tmpSouthIcon = new TmpFlippableIcon();
|
private final TmpFlippableIcon tmpSouthIcon = new TmpFlippableIcon();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import appeng.util.Platform;
|
|||||||
public class TESRWrapper extends TileEntitySpecialRenderer
|
public class TESRWrapper extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
|
|
||||||
final public RenderBlocks renderBlocksInstance = new RenderBlocks();
|
public final RenderBlocks renderBlocksInstance = new RenderBlocks();
|
||||||
|
|
||||||
final BaseBlockRender blkRender;
|
final BaseBlockRender blkRender;
|
||||||
final double MAX_DISTANCE;
|
final double MAX_DISTANCE;
|
||||||
@@ -52,7 +52,7 @@ public class TESRWrapper extends TileEntitySpecialRenderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public void renderTileEntityAt( TileEntity te, double x, double y, double z, float f )
|
public final void renderTileEntityAt( TileEntity te, double x, double y, double z, float f )
|
||||||
{
|
{
|
||||||
if( te instanceof AEBaseTile )
|
if( te instanceof AEBaseTile )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,18 +36,24 @@ import net.minecraft.world.IBlockAccess;
|
|||||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
|
import appeng.api.features.IInscriberRecipe;
|
||||||
import appeng.api.util.IOrientable;
|
import appeng.api.util.IOrientable;
|
||||||
import appeng.block.AEBaseBlock;
|
import appeng.block.AEBaseBlock;
|
||||||
import appeng.block.misc.BlockInscriber;
|
import appeng.block.misc.BlockInscriber;
|
||||||
import appeng.client.render.BaseBlockRender;
|
import appeng.client.render.BaseBlockRender;
|
||||||
import appeng.client.texture.ExtraBlockTextures;
|
import appeng.client.texture.ExtraBlockTextures;
|
||||||
import appeng.core.AELog;
|
import appeng.core.AELog;
|
||||||
import appeng.recipes.handlers.Inscribe.InscriberRecipe;
|
|
||||||
import appeng.tile.AEBaseTile;
|
import appeng.tile.AEBaseTile;
|
||||||
import appeng.tile.misc.TileInscriber;
|
import appeng.tile.misc.TileInscriber;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author AlgorithmX2
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv0
|
||||||
|
*/
|
||||||
public class RenderBlockInscriber extends BaseBlockRender
|
public class RenderBlockInscriber extends BaseBlockRender
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -225,9 +231,9 @@ public class RenderBlockInscriber extends BaseBlockRender
|
|||||||
|
|
||||||
if( is == null )
|
if( is == null )
|
||||||
{
|
{
|
||||||
InscriberRecipe ir = inv.getTask();
|
IInscriberRecipe ir = inv.getTask();
|
||||||
if( ir != null )
|
if( ir != null )
|
||||||
is = ir.output.copy();
|
is = ir.getOutput().copy();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.renderItem( is, 0.0f, block, tile, tess, x, y, z, f, renderer );
|
this.renderItem( is, 0.0f, block, tile, tess, x, y, z, f, renderer );
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public enum CableBusTextures
|
|||||||
|
|
||||||
PartWirelessSides( "PartWirelessSides" ), PartStorageSides( "PartStorageSides" ), PartStorageBack( "PartStorageBack" );
|
PartWirelessSides( "PartWirelessSides" ), PartStorageSides( "PartStorageSides" ), PartStorageBack( "PartStorageBack" );
|
||||||
|
|
||||||
final private String name;
|
private final String name;
|
||||||
public IIcon IIcon;
|
public IIcon IIcon;
|
||||||
|
|
||||||
CableBusTextures( String name )
|
CableBusTextures( String name )
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public enum ExtraBlockTextures
|
|||||||
|
|
||||||
BlockPaint2( "BlockPaint2" ), BlockPaint3( "BlockPaint3" );
|
BlockPaint2( "BlockPaint2" ), BlockPaint3( "BlockPaint3" );
|
||||||
|
|
||||||
final private String name;
|
private final String name;
|
||||||
public IIcon IIcon;
|
public IIcon IIcon;
|
||||||
|
|
||||||
ExtraBlockTextures( String name )
|
ExtraBlockTextures( String name )
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public enum ExtraItemTextures
|
|||||||
|
|
||||||
ToolColorApplicatorTip_Light( "ToolColorApplicatorTip_Light" );
|
ToolColorApplicatorTip_Light( "ToolColorApplicatorTip_Light" );
|
||||||
|
|
||||||
final private String name;
|
private final String name;
|
||||||
public IIcon IIcon;
|
public IIcon IIcon;
|
||||||
|
|
||||||
ExtraItemTextures( String name )
|
ExtraItemTextures( String name )
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
|
|
||||||
protected final InventoryPlayer invPlayer;
|
protected final InventoryPlayer invPlayer;
|
||||||
final protected BaseActionSource mySrc;
|
protected final BaseActionSource mySrc;
|
||||||
protected final HashSet<Integer> locked = new HashSet<Integer>();
|
protected final HashSet<Integer> locked = new HashSet<Integer>();
|
||||||
final TileEntity tileEntity;
|
final TileEntity tileEntity;
|
||||||
final IPart part;
|
final IPart part;
|
||||||
@@ -327,7 +327,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
return this.tileEntity;
|
return this.tileEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
final public void updateFullProgressBar( int idx, long value )
|
public final void updateFullProgressBar( int idx, long value )
|
||||||
{
|
{
|
||||||
if( this.syncData.containsKey( idx ) )
|
if( this.syncData.containsKey( idx ) )
|
||||||
{
|
{
|
||||||
@@ -348,14 +348,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
|
|
||||||
protected void bindPlayerInventory( InventoryPlayer inventoryPlayer, int offset_x, int offset_y )
|
protected void bindPlayerInventory( InventoryPlayer inventoryPlayer, int offset_x, int offset_y )
|
||||||
{
|
{
|
||||||
for( int i = 0; i < 9; i++ )
|
// bind player inventory
|
||||||
{
|
|
||||||
if( this.locked.contains( i ) )
|
|
||||||
this.addSlotToContainer( new SlotDisabled( inventoryPlayer, i, 8 + i * 18 + offset_x, 58 + offset_y ) );
|
|
||||||
else
|
|
||||||
this.addSlotToContainer( new SlotPlayerHotBar( inventoryPlayer, i, 8 + i * 18 + offset_x, 58 + offset_y ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
for( int i = 0; i < 3; i++ )
|
for( int i = 0; i < 3; i++ )
|
||||||
{
|
{
|
||||||
for( int j = 0; j < 9; j++ )
|
for( int j = 0; j < 9; j++ )
|
||||||
@@ -366,6 +359,15 @@ public abstract class AEBaseContainer extends Container
|
|||||||
this.addSlotToContainer( new SlotPlayerInv( inventoryPlayer, j + i * 9 + 9, 8 + j * 18 + offset_x, offset_y + i * 18 ) );
|
this.addSlotToContainer( new SlotPlayerInv( inventoryPlayer, j + i * 9 + 9, 8 + j * 18 + offset_x, offset_y + i * 18 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// bind player hotbar
|
||||||
|
for( int i = 0; i < 9; i++ )
|
||||||
|
{
|
||||||
|
if( this.locked.contains( i ) )
|
||||||
|
this.addSlotToContainer( new SlotDisabled( inventoryPlayer, i, 8 + i * 18 + offset_x, 58 + offset_y ) );
|
||||||
|
else
|
||||||
|
this.addSlotToContainer( new SlotPlayerHotBar( inventoryPlayer, i, 8 + i * 18 + offset_x, 58 + offset_y ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -638,7 +640,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
final public void updateProgressBar( int idx, int value )
|
public final void updateProgressBar( int idx, int value )
|
||||||
{
|
{
|
||||||
if( this.syncData.containsKey( idx ) )
|
if( this.syncData.containsKey( idx ) )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import appeng.api.parts.IPart;
|
|||||||
public class ContainerOpenContext
|
public class ContainerOpenContext
|
||||||
{
|
{
|
||||||
|
|
||||||
final public boolean isItem;
|
public final boolean isItem;
|
||||||
public World w;
|
public World w;
|
||||||
public int x;
|
public int x;
|
||||||
public int y;
|
public int y;
|
||||||
|
|||||||
@@ -25,16 +25,21 @@ import net.minecraft.item.ItemStack;
|
|||||||
|
|
||||||
import appeng.api.AEApi;
|
import appeng.api.AEApi;
|
||||||
import appeng.api.definitions.IItemDefinition;
|
import appeng.api.definitions.IItemDefinition;
|
||||||
|
import appeng.api.features.IInscriberRecipe;
|
||||||
import appeng.container.guisync.GuiSync;
|
import appeng.container.guisync.GuiSync;
|
||||||
import appeng.container.interfaces.IProgressProvider;
|
import appeng.container.interfaces.IProgressProvider;
|
||||||
import appeng.container.slot.SlotOutput;
|
import appeng.container.slot.SlotOutput;
|
||||||
import appeng.container.slot.SlotRestrictedInput;
|
import appeng.container.slot.SlotRestrictedInput;
|
||||||
import appeng.recipes.handlers.Inscribe;
|
|
||||||
import appeng.recipes.handlers.Inscribe.InscriberRecipe;
|
|
||||||
import appeng.tile.misc.TileInscriber;
|
import appeng.tile.misc.TileInscriber;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author AlgorithmX2
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv0
|
||||||
|
*/
|
||||||
public class ContainerInscriber extends ContainerUpgradeable implements IProgressProvider
|
public class ContainerInscriber extends ContainerUpgradeable implements IProgressProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -105,32 +110,32 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres
|
|||||||
@Override
|
@Override
|
||||||
public boolean isValidForSlot( Slot s, ItemStack is )
|
public boolean isValidForSlot( Slot s, ItemStack is )
|
||||||
{
|
{
|
||||||
ItemStack PlateA = this.ti.getStackInSlot( 0 );
|
ItemStack top = this.ti.getStackInSlot( 0 );
|
||||||
ItemStack PlateB = this.ti.getStackInSlot( 1 );
|
ItemStack bot = this.ti.getStackInSlot( 1 );
|
||||||
|
|
||||||
if( s == this.middle )
|
if( s == this.middle )
|
||||||
{
|
{
|
||||||
for( ItemStack i : Inscribe.PLATES )
|
for( ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( i, is ) )
|
if( Platform.isSameItemPrecise( optional, is ) )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean matches = false;
|
boolean matches = false;
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
|
|
||||||
for( InscriberRecipe i : Inscribe.RECIPES )
|
for( IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() )
|
||||||
{
|
{
|
||||||
boolean matchA = ( PlateA == null && i.plateA == null ) || ( Platform.isSameItemPrecise( PlateA, i.plateA ) ) && // and...
|
boolean matchA = ( top == null && !recipe.getTopOptional().isPresent() ) || ( Platform.isSameItemPrecise( top, recipe.getTopOptional().orNull() ) ) && // and...
|
||||||
( PlateB == null && i.plateB == null ) | ( Platform.isSameItemPrecise( PlateB, i.plateB ) );
|
( bot == null && !recipe.getBottomOptional().isPresent() ) | ( Platform.isSameItemPrecise( bot, recipe.getBottomOptional().orNull() ) );
|
||||||
|
|
||||||
boolean matchB = ( PlateB == null && i.plateA == null ) || ( Platform.isSameItemPrecise( PlateB, i.plateA ) ) && // and...
|
boolean matchB = ( bot == null && !recipe.getTopOptional().isPresent() ) || ( Platform.isSameItemPrecise( bot, recipe.getTopOptional().orNull() ) ) && // and...
|
||||||
( PlateA == null && i.plateB == null ) | ( Platform.isSameItemPrecise( PlateA, i.plateB ) );
|
( top == null && !recipe.getBottomOptional().isPresent() ) | ( Platform.isSameItemPrecise( top, recipe.getBottomOptional().orNull() ) );
|
||||||
|
|
||||||
if( matchA || matchB )
|
if( matchA || matchB )
|
||||||
{
|
{
|
||||||
matches = true;
|
matches = true;
|
||||||
for( ItemStack option : i.imprintable )
|
for( ItemStack option : recipe.getInputs() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( is, option ) )
|
if( Platform.isSameItemPrecise( is, option ) )
|
||||||
found = true;
|
found = true;
|
||||||
@@ -142,7 +147,7 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( s == this.top && PlateB != null ) || ( s == this.bottom && PlateA != null ) )
|
if( ( s == this.top && bot != null ) || ( s == this.bottom && top != null ) )
|
||||||
{
|
{
|
||||||
boolean isValid = false;
|
boolean isValid = false;
|
||||||
ItemStack otherSlot = null;
|
ItemStack otherSlot = null;
|
||||||
@@ -159,15 +164,15 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres
|
|||||||
}
|
}
|
||||||
|
|
||||||
// everything else
|
// everything else
|
||||||
for( InscriberRecipe i : Inscribe.RECIPES )
|
for( IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( i.plateA, otherSlot ) )
|
if( Platform.isSameItemPrecise( recipe.getTopOptional().orNull(), otherSlot ) )
|
||||||
{
|
{
|
||||||
isValid = Platform.isSameItemPrecise( is, i.plateB );
|
isValid = Platform.isSameItemPrecise( is, recipe.getBottomOptional().orNull() );
|
||||||
}
|
}
|
||||||
else if( Platform.isSameItemPrecise( i.plateB, otherSlot ) )
|
else if( Platform.isSameItemPrecise( recipe.getBottomOptional().orNull(), otherSlot ) )
|
||||||
{
|
{
|
||||||
isValid = Platform.isSameItemPrecise( is, i.plateA );
|
isValid = Platform.isSameItemPrecise( is, recipe.getTopOptional().orNull() );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( isValid )
|
if( isValid )
|
||||||
|
|||||||
@@ -54,17 +54,17 @@ import appeng.util.inv.AdaptorPlayerHand;
|
|||||||
import appeng.util.inv.WrapperInvSlot;
|
import appeng.util.inv.WrapperInvSlot;
|
||||||
|
|
||||||
|
|
||||||
public class ContainerInterfaceTerminal extends AEBaseContainer
|
public final class ContainerInterfaceTerminal extends AEBaseContainer
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* this stuff is all server side..
|
* this stuff is all server side..
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static private long autoBase = Long.MIN_VALUE;
|
private static long autoBase = Long.MIN_VALUE;
|
||||||
final Map<IInterfaceHost, InvTracker> diList = new HashMap<IInterfaceHost, InvTracker>();
|
final Map<IInterfaceHost, InvTracker> diList = new HashMap<IInterfaceHost, InvTracker>();
|
||||||
final Map<Long, InvTracker> byId = new HashMap<Long, InvTracker>();
|
final Map<Long, InvTracker> byId = new HashMap<Long, InvTracker>();
|
||||||
IGrid g;
|
IGrid grid;
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
|
|
||||||
public ContainerInterfaceTerminal( InventoryPlayer ip, PartMonitor anchor )
|
public ContainerInterfaceTerminal( InventoryPlayer ip, PartMonitor anchor )
|
||||||
@@ -72,7 +72,7 @@ public class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
super( ip, anchor );
|
super( ip, anchor );
|
||||||
|
|
||||||
if( Platform.isServer() )
|
if( Platform.isServer() )
|
||||||
this.g = anchor.getActionableNode().getGrid();
|
this.grid = anchor.getActionableNode().getGrid();
|
||||||
|
|
||||||
this.bindPlayerInventory( ip, 0, 222 - /* height of player inventory */82 );
|
this.bindPlayerInventory( ip, 0, 222 - /* height of player inventory */82 );
|
||||||
}
|
}
|
||||||
@@ -85,7 +85,7 @@ public class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
|
|
||||||
super.detectAndSendChanges();
|
super.detectAndSendChanges();
|
||||||
|
|
||||||
if( this.g == null )
|
if( this.grid == null )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int total = 0;
|
int total = 0;
|
||||||
@@ -97,7 +97,7 @@ public class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
IGridNode agn = host.getActionableNode();
|
IGridNode agn = host.getActionableNode();
|
||||||
if( agn != null && agn.isActive() )
|
if( agn != null && agn.isActive() )
|
||||||
{
|
{
|
||||||
for( IGridNode gn : this.g.getMachines( TileInterface.class ) )
|
for( IGridNode gn : this.grid.getMachines( TileInterface.class ) )
|
||||||
{
|
{
|
||||||
if( gn.isActive() )
|
if( gn.isActive() )
|
||||||
{
|
{
|
||||||
@@ -120,7 +120,7 @@ public class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( IGridNode gn : this.g.getMachines( PartInterface.class ) )
|
for( IGridNode gn : this.grid.getMachines( PartInterface.class ) )
|
||||||
{
|
{
|
||||||
if( gn.isActive() )
|
if( gn.isActive() )
|
||||||
{
|
{
|
||||||
@@ -289,7 +289,7 @@ public class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
IGridNode agn = host.getActionableNode();
|
IGridNode agn = host.getActionableNode();
|
||||||
if( agn != null && agn.isActive() )
|
if( agn != null && agn.isActive() )
|
||||||
{
|
{
|
||||||
for( IGridNode gn : this.g.getMachines( TileInterface.class ) )
|
for( IGridNode gn : this.grid.getMachines( TileInterface.class ) )
|
||||||
{
|
{
|
||||||
IInterfaceHost ih = (IInterfaceHost) gn.getMachine();
|
IInterfaceHost ih = (IInterfaceHost) gn.getMachine();
|
||||||
DualityInterface dual = ih.getInterfaceDuality();
|
DualityInterface dual = ih.getInterfaceDuality();
|
||||||
@@ -297,7 +297,7 @@ public class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
this.diList.put( ih, new InvTracker( dual, dual.getPatterns(), dual.getTermName() ) );
|
this.diList.put( ih, new InvTracker( dual, dual.getPatterns(), dual.getTermName() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( IGridNode gn : this.g.getMachines( PartInterface.class ) )
|
for( IGridNode gn : this.grid.getMachines( PartInterface.class ) )
|
||||||
{
|
{
|
||||||
IInterfaceHost ih = (IInterfaceHost) gn.getMachine();
|
IInterfaceHost ih = (IInterfaceHost) gn.getMachine();
|
||||||
DualityInterface dual = ih.getInterfaceDuality();
|
DualityInterface dual = ih.getInterfaceDuality();
|
||||||
|
|||||||
@@ -25,20 +25,33 @@ import net.minecraft.item.ItemStack;
|
|||||||
import appeng.api.config.Actionable;
|
import appeng.api.config.Actionable;
|
||||||
import appeng.api.config.PowerMultiplier;
|
import appeng.api.config.PowerMultiplier;
|
||||||
import appeng.api.implementations.guiobjects.IPortableCell;
|
import appeng.api.implementations.guiobjects.IPortableCell;
|
||||||
|
import appeng.container.interfaces.IInventorySlotAware;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
|
||||||
public class ContainerMEPortableCell extends ContainerMEMonitorable
|
public class ContainerMEPortableCell extends ContainerMEMonitorable
|
||||||
{
|
{
|
||||||
|
|
||||||
final IPortableCell civ;
|
public double powerMultiplier = 0.5;
|
||||||
double powerMultiplier = 0.5;
|
|
||||||
int ticks = 0;
|
private final IPortableCell civ;
|
||||||
|
private int ticks = 0;
|
||||||
|
private final int slot;
|
||||||
|
|
||||||
public ContainerMEPortableCell( InventoryPlayer ip, IPortableCell monitorable )
|
public ContainerMEPortableCell( InventoryPlayer ip, IPortableCell monitorable )
|
||||||
{
|
{
|
||||||
super( ip, monitorable, false );
|
super( ip, monitorable, false );
|
||||||
this.lockPlayerInventorySlot( ip.currentItem );
|
if( monitorable instanceof IInventorySlotAware )
|
||||||
|
{
|
||||||
|
int slotIndex = ( (IInventorySlotAware) monitorable ).getInventorySlot();
|
||||||
|
this.lockPlayerInventorySlot( slotIndex );
|
||||||
|
this.slot = slotIndex;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.slot = -1;
|
||||||
|
this.lockPlayerInventorySlot( ip.currentItem );
|
||||||
|
}
|
||||||
this.civ = monitorable;
|
this.civ = monitorable;
|
||||||
this.bindPlayerInventory( ip, 0, 0 );
|
this.bindPlayerInventory( ip, 0, 0 );
|
||||||
}
|
}
|
||||||
@@ -46,7 +59,7 @@ public class ContainerMEPortableCell extends ContainerMEMonitorable
|
|||||||
@Override
|
@Override
|
||||||
public void detectAndSendChanges()
|
public void detectAndSendChanges()
|
||||||
{
|
{
|
||||||
ItemStack currentItem = this.getPlayerInv().getCurrentItem();
|
ItemStack currentItem = slot < 0 ? this.getPlayerInv().getCurrentItem() : this.getPlayerInv().getStackInSlot( slot );
|
||||||
|
|
||||||
if( this.civ != null )
|
if( this.civ != null )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* 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.container.interfaces;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Any item providing a GUI and depending on an exact inventory slot.
|
||||||
|
*
|
||||||
|
* This interface is likely a volatile one until a general GUI refactoring occurred.
|
||||||
|
* Use it with care and expect changes.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface IInventorySlotAware
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* This is needed to select the correct slot index.
|
||||||
|
*
|
||||||
|
* @return the inventory index of this portable cell.
|
||||||
|
*/
|
||||||
|
int getInventorySlot();
|
||||||
|
}
|
||||||
@@ -42,10 +42,15 @@ import appeng.api.implementations.items.IUpgradeModule;
|
|||||||
import appeng.api.networking.crafting.ICraftingPatternDetails;
|
import appeng.api.networking.crafting.ICraftingPatternDetails;
|
||||||
import appeng.api.storage.ICellWorkbenchItem;
|
import appeng.api.storage.ICellWorkbenchItem;
|
||||||
import appeng.items.misc.ItemEncodedPattern;
|
import appeng.items.misc.ItemEncodedPattern;
|
||||||
import appeng.recipes.handlers.Inscribe;
|
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author AlgorithmX2
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv0
|
||||||
|
*/
|
||||||
public class SlotRestrictedInput extends AppEngSlot
|
public class SlotRestrictedInput extends AppEngSlot
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -144,8 +149,8 @@ public class SlotRestrictedInput extends AppEngSlot
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for( ItemStack is : Inscribe.PLATES )
|
for( ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() )
|
||||||
if( Platform.isSameItemPrecise( is, i ) )
|
if( Platform.isSameItemPrecise( optional, i ) )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -224,7 +229,7 @@ public class SlotRestrictedInput extends AppEngSlot
|
|||||||
return super.getStack();
|
return super.getStack();
|
||||||
}
|
}
|
||||||
|
|
||||||
static public boolean isMetalIngot( ItemStack i )
|
public static boolean isMetalIngot( ItemStack i )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( i, new ItemStack( Items.iron_ingot ) ) )
|
if( Platform.isSameItemPrecise( i, new ItemStack( Items.iron_ingot ) ) )
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class AEConfig extends Configuration implements IConfigurableObject, ICon
|
|||||||
public static final double TUNNEL_POWER_LOSS = 0.05;
|
public static final double TUNNEL_POWER_LOSS = 0.05;
|
||||||
public static final String VERSION = "@version@";
|
public static final String VERSION = "@version@";
|
||||||
public static final String CHANNEL = "@aechannel@";
|
public static final String CHANNEL = "@aechannel@";
|
||||||
public final static String PACKET_CHANNEL = "AE";
|
public static final String PACKET_CHANNEL = "AE";
|
||||||
public static AEConfig instance;
|
public static AEConfig instance;
|
||||||
public final IConfigManager settings = new ConfigManager( this );
|
public final IConfigManager settings = new ConfigManager( this );
|
||||||
public final EnumSet<AEFeature> featureFlags = EnumSet.noneOf( AEFeature.class );
|
public final EnumSet<AEFeature> featureFlags = EnumSet.noneOf( AEFeature.class );
|
||||||
@@ -63,7 +63,7 @@ public class AEConfig extends Configuration implements IConfigurableObject, ICon
|
|||||||
public final int[] priorityByStacks = new int[] { 1, 10, 100, 1000 };
|
public final int[] priorityByStacks = new int[] { 1, 10, 100, 1000 };
|
||||||
public final int[] levelByStacks = new int[] { 1, 10, 100, 1000 };
|
public final int[] levelByStacks = new int[] { 1, 10, 100, 1000 };
|
||||||
private final double WirelessHighWirelessCount = 64;
|
private final double WirelessHighWirelessCount = 64;
|
||||||
final private File configFile;
|
private final File configFile;
|
||||||
public int storageBiomeID = -1;
|
public int storageBiomeID = -1;
|
||||||
public int storageProviderID = -1;
|
public int storageProviderID = -1;
|
||||||
public int formationPlaneEntityLimit = 128;
|
public int formationPlaneEntityLimit = 128;
|
||||||
|
|||||||
@@ -55,9 +55,9 @@ import appeng.util.Platform;
|
|||||||
@Mod( modid = AppEng.MOD_ID, acceptedMinecraftVersions = "[1.7.10]", name = AppEng.MOD_NAME, version = AEConfig.VERSION, dependencies = AppEng.MOD_DEPENDENCIES, guiFactory = "appeng.client.gui.config.AEConfigGuiFactory" )
|
@Mod( modid = AppEng.MOD_ID, acceptedMinecraftVersions = "[1.7.10]", name = AppEng.MOD_NAME, version = AEConfig.VERSION, dependencies = AppEng.MOD_DEPENDENCIES, guiFactory = "appeng.client.gui.config.AEConfigGuiFactory" )
|
||||||
public class AppEng
|
public class AppEng
|
||||||
{
|
{
|
||||||
public final static String MOD_ID = "appliedenergistics2";
|
public static final String MOD_ID = "appliedenergistics2";
|
||||||
public final static String MOD_NAME = "Applied Energistics 2";
|
public static final String MOD_NAME = "Applied Energistics 2";
|
||||||
public final static String MOD_DEPENDENCIES =
|
public static final String MOD_DEPENDENCIES =
|
||||||
// a few mods, AE should load after, probably.
|
// a few mods, AE should load after, probably.
|
||||||
// required-after:AppliedEnergistics2API|all;
|
// required-after:AppliedEnergistics2API|all;
|
||||||
// "after:gregtech_addon;after:Mekanism;after:IC2;after:ThermalExpansion;after:BuildCraft|Core;" +
|
// "after:gregtech_addon;after:Mekanism;after:IC2;after:ThermalExpansion;after:BuildCraft|Core;" +
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
package appeng.core;
|
package appeng.core;
|
||||||
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import appeng.core.features.IFeatureHandler;
|
import appeng.core.features.IFeatureHandler;
|
||||||
@@ -27,7 +27,7 @@ import appeng.core.features.IFeatureHandler;
|
|||||||
|
|
||||||
public final class FeatureHandlerRegistry
|
public final class FeatureHandlerRegistry
|
||||||
{
|
{
|
||||||
private final Set<IFeatureHandler> registry = new HashSet<IFeatureHandler>();
|
private final Set<IFeatureHandler> registry = new LinkedHashSet<IFeatureHandler>();
|
||||||
|
|
||||||
public void addFeatureHandler( IFeatureHandler feature )
|
public void addFeatureHandler( IFeatureHandler feature )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
package appeng.core;
|
package appeng.core;
|
||||||
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import appeng.core.features.IAEFeature;
|
import appeng.core.features.IAEFeature;
|
||||||
@@ -27,7 +27,7 @@ import appeng.core.features.IAEFeature;
|
|||||||
|
|
||||||
public final class FeatureRegistry
|
public final class FeatureRegistry
|
||||||
{
|
{
|
||||||
private final Set<IAEFeature> registry = new HashSet<IAEFeature>();
|
private final Set<IAEFeature> registry = new LinkedHashSet<IAEFeature>();
|
||||||
|
|
||||||
public void addFeature( IAEFeature feature )
|
public void addFeature( IAEFeature feature )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ import appeng.worldgen.QuartzWorldGen;
|
|||||||
|
|
||||||
public final class Registration
|
public final class Registration
|
||||||
{
|
{
|
||||||
final public static Registration INSTANCE = new Registration();
|
public static final Registration INSTANCE = new Registration();
|
||||||
|
|
||||||
private final RecipeHandler recipeHandler;
|
private final RecipeHandler recipeHandler;
|
||||||
private final DefinitionConverter converter;
|
private final DefinitionConverter converter;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import appeng.core.AELog;
|
|||||||
public class GridCacheRegistry implements IGridCacheRegistry
|
public class GridCacheRegistry implements IGridCacheRegistry
|
||||||
{
|
{
|
||||||
|
|
||||||
final private HashMap<Class<? extends IGridCache>, Class<? extends IGridCache>> caches = new HashMap<Class<? extends IGridCache>, Class<? extends IGridCache>>();
|
private final HashMap<Class<? extends IGridCache>, Class<? extends IGridCache>> caches = new HashMap<Class<? extends IGridCache>, Class<? extends IGridCache>>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerGridCache( Class<? extends IGridCache> iface, Class<? extends IGridCache> implementation )
|
public void registerGridCache( Class<? extends IGridCache> iface, Class<? extends IGridCache> implementation )
|
||||||
|
|||||||
@@ -0,0 +1,170 @@
|
|||||||
|
package appeng.core.features.registries;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import appeng.api.features.IInscriberRecipe;
|
||||||
|
import appeng.api.features.IInscriberRecipeBuilder;
|
||||||
|
import appeng.api.features.IInscriberRegistry;
|
||||||
|
import appeng.api.features.InscriberProcessType;
|
||||||
|
import appeng.core.features.registries.entries.InscriberRecipe;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv2
|
||||||
|
*/
|
||||||
|
public final class InscriberRegistry implements IInscriberRegistry
|
||||||
|
{
|
||||||
|
private final List<IInscriberRecipe> recipes;
|
||||||
|
private final Set<ItemStack> optionals;
|
||||||
|
private final Set<ItemStack> inputs;
|
||||||
|
|
||||||
|
public InscriberRegistry()
|
||||||
|
{
|
||||||
|
this.inputs = new HashSet<ItemStack>();
|
||||||
|
this.optionals = new HashSet<ItemStack>();
|
||||||
|
this.recipes = new ArrayList<IInscriberRecipe>();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public List<IInscriberRecipe> getRecipes()
|
||||||
|
{
|
||||||
|
return this.recipes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Set<ItemStack> getOptionals()
|
||||||
|
{
|
||||||
|
return this.optionals;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Set<ItemStack> getInputs()
|
||||||
|
{
|
||||||
|
return this.inputs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public IInscriberRecipeBuilder builder()
|
||||||
|
{
|
||||||
|
return new Builder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addRecipe( IInscriberRecipe recipe )
|
||||||
|
{
|
||||||
|
if( recipe == null )
|
||||||
|
throw new IllegalArgumentException( "Tried to add an invalid (null) inscriber recipe to the registry." );
|
||||||
|
|
||||||
|
this.recipes.add( recipe );
|
||||||
|
|
||||||
|
this.optionals.addAll( recipe.getTopOptional().asSet() );
|
||||||
|
this.optionals.addAll( recipe.getBottomOptional().asSet() );
|
||||||
|
|
||||||
|
this.inputs.addAll( recipe.getInputs() );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeRecipe( IInscriberRecipe toBeRemovedRecipe )
|
||||||
|
{
|
||||||
|
for( final Iterator<IInscriberRecipe> iterator = this.recipes.iterator(); iterator.hasNext(); )
|
||||||
|
{
|
||||||
|
final IInscriberRecipe recipe = iterator.next();
|
||||||
|
if( recipe.equals( toBeRemovedRecipe ) )
|
||||||
|
{
|
||||||
|
iterator.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal {@link IInscriberRecipeBuilder} implementation.
|
||||||
|
* Needs to be adapted to represent a correct {@link IInscriberRecipe}
|
||||||
|
*/
|
||||||
|
private static final class Builder implements IInscriberRecipeBuilder
|
||||||
|
{
|
||||||
|
private List<ItemStack> inputs;
|
||||||
|
private ItemStack output;
|
||||||
|
private ItemStack topOptional;
|
||||||
|
private ItemStack bottomOptional;
|
||||||
|
private InscriberProcessType type;
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Builder withInputs( @Nonnull Collection<ItemStack> inputs )
|
||||||
|
{
|
||||||
|
this.inputs = new ArrayList<ItemStack>( inputs.size() );
|
||||||
|
this.inputs.addAll( inputs );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Builder withOutput( @Nonnull ItemStack output )
|
||||||
|
{
|
||||||
|
this.output = output;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Builder withTopOptional( @Nonnull ItemStack topOptional )
|
||||||
|
{
|
||||||
|
this.topOptional = topOptional;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Builder withBottomOptional( @Nonnull ItemStack bottomOptional )
|
||||||
|
{
|
||||||
|
this.bottomOptional = bottomOptional;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public Builder withProcessType( @Nonnull InscriberProcessType type )
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public IInscriberRecipe build()
|
||||||
|
{
|
||||||
|
if( this.inputs == null )
|
||||||
|
throw new IllegalStateException( "Input must be defined." );
|
||||||
|
if( this.inputs.size() == 0 )
|
||||||
|
throw new IllegalStateException( "Input must have a size." );
|
||||||
|
if( this.output == null )
|
||||||
|
throw new IllegalStateException( "Output must be defined." );
|
||||||
|
if ( this.topOptional == null && this.bottomOptional == null )
|
||||||
|
throw new IllegalStateException( "One optional must be defined." );
|
||||||
|
if ( this.type == null )
|
||||||
|
throw new IllegalStateException( "Process type must be defined." );
|
||||||
|
|
||||||
|
return new InscriberRecipe( this.inputs, this.output, this.topOptional, this.bottomOptional, this.type );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,6 +20,7 @@ package appeng.core.features.registries;
|
|||||||
|
|
||||||
|
|
||||||
import appeng.api.features.IGrinderRegistry;
|
import appeng.api.features.IGrinderRegistry;
|
||||||
|
import appeng.api.features.IInscriberRegistry;
|
||||||
import appeng.api.features.ILocatableRegistry;
|
import appeng.api.features.ILocatableRegistry;
|
||||||
import appeng.api.features.IMatterCannonAmmoRegistry;
|
import appeng.api.features.IMatterCannonAmmoRegistry;
|
||||||
import appeng.api.features.IP2PTunnelRegistry;
|
import appeng.api.features.IP2PTunnelRegistry;
|
||||||
@@ -35,74 +36,88 @@ import appeng.api.storage.ICellRegistry;
|
|||||||
import appeng.api.storage.IExternalStorageRegistry;
|
import appeng.api.storage.IExternalStorageRegistry;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* represents all registries
|
||||||
|
*
|
||||||
|
* @author AlgorithmX2
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv0
|
||||||
|
*/
|
||||||
public class RegistryContainer implements IRegistryContainer
|
public class RegistryContainer implements IRegistryContainer
|
||||||
{
|
{
|
||||||
|
private final IGrinderRegistry grinder = new GrinderRecipeManager();
|
||||||
private final GrinderRecipeManager GrinderRecipes = new GrinderRecipeManager();
|
private final IInscriberRegistry inscriber = new InscriberRegistry();
|
||||||
private final ExternalStorageRegistry ExternalStorageHandlers = new ExternalStorageRegistry();
|
private final IExternalStorageRegistry storage = new ExternalStorageRegistry();
|
||||||
private final CellRegistry CellRegistry = new CellRegistry();
|
private final ICellRegistry cell = new CellRegistry();
|
||||||
private final LocatableRegistry LocatableRegistry = new LocatableRegistry();
|
private final ILocatableRegistry locatable = new LocatableRegistry();
|
||||||
private final SpecialComparisonRegistry SpecialComparisonRegistry = new SpecialComparisonRegistry();
|
private final ISpecialComparisonRegistry comparison = new SpecialComparisonRegistry();
|
||||||
private final WirelessRegistry WirelessRegistry = new WirelessRegistry();
|
private final IWirelessTermRegistry wireless = new WirelessRegistry();
|
||||||
private final GridCacheRegistry GridCacheRegistry = new GridCacheRegistry();
|
private final IGridCacheRegistry gridCache = new GridCacheRegistry();
|
||||||
private final P2PTunnelRegistry P2PRegistry = new P2PTunnelRegistry();
|
private final IP2PTunnelRegistry p2ptunnel = new P2PTunnelRegistry();
|
||||||
private final MovableTileRegistry MovableReg = new MovableTileRegistry();
|
private final IMovableRegistry movable = new MovableTileRegistry();
|
||||||
private final MatterCannonAmmoRegistry matterCannonReg = new MatterCannonAmmoRegistry();
|
private final IMatterCannonAmmoRegistry matterCannonReg = new MatterCannonAmmoRegistry();
|
||||||
private final PlayerRegistry playerRegistry = new PlayerRegistry();
|
private final IPlayerRegistry playerRegistry = new PlayerRegistry();
|
||||||
private final IRecipeHandlerRegistry recipeReg = new RecipeHandlerRegistry();
|
private final IRecipeHandlerRegistry recipeReg = new RecipeHandlerRegistry();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMovableRegistry movable()
|
public IMovableRegistry movable()
|
||||||
{
|
{
|
||||||
return this.MovableReg;
|
return this.movable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IGridCacheRegistry gridCache()
|
public IGridCacheRegistry gridCache()
|
||||||
{
|
{
|
||||||
return this.GridCacheRegistry;
|
return this.gridCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IExternalStorageRegistry externalStorage()
|
public IExternalStorageRegistry externalStorage()
|
||||||
{
|
{
|
||||||
return this.ExternalStorageHandlers;
|
return this.storage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ISpecialComparisonRegistry specialComparison()
|
public ISpecialComparisonRegistry specialComparison()
|
||||||
{
|
{
|
||||||
return this.SpecialComparisonRegistry;
|
return this.comparison;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IWirelessTermRegistry wireless()
|
public IWirelessTermRegistry wireless()
|
||||||
{
|
{
|
||||||
return this.WirelessRegistry;
|
return this.wireless;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICellRegistry cell()
|
public ICellRegistry cell()
|
||||||
{
|
{
|
||||||
return this.CellRegistry;
|
return this.cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IGrinderRegistry grinder()
|
public IGrinderRegistry grinder()
|
||||||
{
|
{
|
||||||
return this.GrinderRecipes;
|
return this.grinder;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IInscriberRegistry inscriber()
|
||||||
|
{
|
||||||
|
return this.inscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ILocatableRegistry locatable()
|
public ILocatableRegistry locatable()
|
||||||
{
|
{
|
||||||
return this.LocatableRegistry;
|
return this.locatable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IP2PTunnelRegistry p2pTunnel()
|
public IP2PTunnelRegistry p2pTunnel()
|
||||||
{
|
{
|
||||||
return this.P2PRegistry;
|
return this.p2ptunnel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ import net.minecraft.tileentity.TileEntity;
|
|||||||
public class WirelessRangeResult
|
public class WirelessRangeResult
|
||||||
{
|
{
|
||||||
|
|
||||||
final public float dist;
|
public final float dist;
|
||||||
final public TileEntity te;
|
public final TileEntity te;
|
||||||
|
|
||||||
public WirelessRangeResult( TileEntity t, float d )
|
public WirelessRangeResult( TileEntity t, float d )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import appeng.api.features.IWorldGen;
|
|||||||
public final class WorldGenRegistry implements IWorldGen
|
public final class WorldGenRegistry implements IWorldGen
|
||||||
{
|
{
|
||||||
|
|
||||||
static final public WorldGenRegistry INSTANCE = new WorldGenRegistry();
|
public static final WorldGenRegistry INSTANCE = new WorldGenRegistry();
|
||||||
final TypeSet[] types;
|
final TypeSet[] types;
|
||||||
|
|
||||||
private WorldGenRegistry()
|
private WorldGenRegistry()
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package appeng.core.features.registries.entries;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import appeng.api.features.InscriberProcessType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* inscribe recipes do not use up the provided optional upon craft
|
||||||
|
*
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv2
|
||||||
|
*/
|
||||||
|
public class InscriberInscribeRecipe extends InscriberRecipe
|
||||||
|
{
|
||||||
|
public InscriberInscribeRecipe( @Nonnull Collection<ItemStack> inputs, @Nonnull ItemStack output, @Nullable ItemStack top, @Nullable ItemStack bot )
|
||||||
|
{
|
||||||
|
super( inputs, output, top, bot, InscriberProcessType.Inscribe );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
package appeng.core.features.registries.entries;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import com.google.common.base.Optional;
|
||||||
|
|
||||||
|
import appeng.api.features.IInscriberRecipe;
|
||||||
|
import appeng.api.features.InscriberProcessType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic inscriber recipe
|
||||||
|
*
|
||||||
|
* @author thatsIch
|
||||||
|
* @version rv2
|
||||||
|
* @since rv2
|
||||||
|
*/
|
||||||
|
public class InscriberRecipe implements IInscriberRecipe
|
||||||
|
{
|
||||||
|
@Nonnull
|
||||||
|
private final List<ItemStack> inputs;
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private final ItemStack output;
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private final Optional<ItemStack> maybeTop;
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private final Optional<ItemStack> maybeBot;
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private final InscriberProcessType type;
|
||||||
|
|
||||||
|
public InscriberRecipe( @Nonnull Collection<ItemStack> inputs, @Nonnull ItemStack output, @Nullable ItemStack top, @Nullable ItemStack bot, @Nonnull InscriberProcessType type )
|
||||||
|
{
|
||||||
|
this.inputs = new ArrayList<ItemStack>( inputs.size() );
|
||||||
|
this.inputs.addAll( inputs );
|
||||||
|
|
||||||
|
this.output = output;
|
||||||
|
this.maybeTop = Optional.fromNullable( top );
|
||||||
|
this.maybeBot = Optional.fromNullable( bot );
|
||||||
|
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public final List<ItemStack> getInputs()
|
||||||
|
{
|
||||||
|
return this.inputs;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public final ItemStack getOutput()
|
||||||
|
{
|
||||||
|
return this.output;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public final Optional<ItemStack> getTopOptional()
|
||||||
|
{
|
||||||
|
return this.maybeTop;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public final Optional<ItemStack> getBottomOptional()
|
||||||
|
{
|
||||||
|
return this.maybeBot;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
@Override
|
||||||
|
public final InscriberProcessType getProcessType()
|
||||||
|
{
|
||||||
|
return this.type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object o )
|
||||||
|
{
|
||||||
|
if( this == o )
|
||||||
|
return true;
|
||||||
|
if( !(o instanceof IInscriberRecipe) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
IInscriberRecipe that = (IInscriberRecipe) o;
|
||||||
|
|
||||||
|
if( !this.inputs.equals( that.getInputs() ) )
|
||||||
|
return false;
|
||||||
|
if( !this.output.equals( that.getOutput() ) )
|
||||||
|
return false;
|
||||||
|
if( !this.maybeTop.equals( that.getTopOptional() ) )
|
||||||
|
return false;
|
||||||
|
if( !this.maybeBot.equals( that.getBottomOptional()) )
|
||||||
|
return false;
|
||||||
|
return this.type == that.getProcessType();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
int result = this.inputs.hashCode();
|
||||||
|
result = 31 * result + this.output.hashCode();
|
||||||
|
result = 31 * result + this.maybeTop.hashCode();
|
||||||
|
result = 31 * result + this.maybeBot.hashCode();
|
||||||
|
result = 31 * result + this.type.hashCode();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -58,7 +58,10 @@ public enum ButtonToolTips
|
|||||||
|
|
||||||
Craft, Mod, DoesntDespawn, EmitterMode, CraftViaRedstone, EmitWhenCrafting, ReportInaccessibleItems, ReportInaccessibleItemsYes, ReportInaccessibleItemsNo,
|
Craft, Mod, DoesntDespawn, EmitterMode, CraftViaRedstone, EmitWhenCrafting, ReportInaccessibleItems, ReportInaccessibleItemsYes, ReportInaccessibleItemsNo,
|
||||||
|
|
||||||
BlockPlacement, BlockPlacementYes, BlockPlacementNo;
|
BlockPlacement, BlockPlacementYes, BlockPlacementNo,
|
||||||
|
|
||||||
|
// Used in the tooltips of the items in the terminal, when moused over
|
||||||
|
ItemsStored, ItemsRequestable;
|
||||||
|
|
||||||
final String root;
|
final String root;
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,13 @@ public enum GuiText
|
|||||||
|
|
||||||
NoCraftingJobs, CPUs, FacadeCrafting, inWorldCraftingPresses, ChargedQuartzFind,
|
NoCraftingJobs, CPUs, FacadeCrafting, inWorldCraftingPresses, ChargedQuartzFind,
|
||||||
|
|
||||||
Included, Excluded, Partitioned, Precise, Fuzzy;
|
Included, Excluded, Partitioned, Precise, Fuzzy,
|
||||||
|
|
||||||
|
// Used in a terminal to indicate that an item is craftable
|
||||||
|
SmallFontCraft, LargeFontCraft,
|
||||||
|
|
||||||
|
// Used in a ME Interface when no appropriate TileEntity was detected near it
|
||||||
|
Nothing;
|
||||||
|
|
||||||
final String root;
|
final String root;
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public abstract class AppEngPacket
|
|||||||
throw new RuntimeException( "This packet ( " + this.getPacketID() + " does not implement a server side handler." );
|
throw new RuntimeException( "This packet ( " + this.getPacketID() + " does not implement a server side handler." );
|
||||||
}
|
}
|
||||||
|
|
||||||
final public int getPacketID()
|
public final int getPacketID()
|
||||||
{
|
{
|
||||||
return AppEngPacketHandlerBase.PacketTypes.getID( this.getClass() ).ordinal();
|
return AppEngPacketHandlerBase.PacketTypes.getID( this.getClass() ).ordinal();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,15 +250,21 @@ public enum GuiBridge implements IGuiHandler
|
|||||||
ForgeDirection side = ForgeDirection.getOrientation( ID_ORDINAL & 0x07 );
|
ForgeDirection side = ForgeDirection.getOrientation( ID_ORDINAL & 0x07 );
|
||||||
GuiBridge ID = values()[ID_ORDINAL >> 4];
|
GuiBridge ID = values()[ID_ORDINAL >> 4];
|
||||||
boolean stem = ( ( ID_ORDINAL >> 3 ) & 1 ) == 1;
|
boolean stem = ( ( ID_ORDINAL >> 3 ) & 1 ) == 1;
|
||||||
|
if( ID.type.isItem() )
|
||||||
if( ID.type.isItem() && stem )
|
|
||||||
{
|
{
|
||||||
ItemStack it = player.inventory.getCurrentItem();
|
ItemStack it = null;
|
||||||
|
if( stem )
|
||||||
|
{
|
||||||
|
it = player.inventory.getCurrentItem();
|
||||||
|
}
|
||||||
|
else if( x >= 0 && x < player.inventory.mainInventory.length )
|
||||||
|
{
|
||||||
|
it = player.inventory.getStackInSlot( x );
|
||||||
|
}
|
||||||
Object myItem = this.getGuiObject( it, player, w, x, y, z );
|
Object myItem = this.getGuiObject( it, player, w, x, y, z );
|
||||||
if( myItem != null && ID.CorrectTileOrPart( myItem ) )
|
if( myItem != null && ID.CorrectTileOrPart( myItem ) )
|
||||||
return this.updateGui( ID.ConstructContainer( player.inventory, side, myItem ), w, x, y, z, side, myItem );
|
return this.updateGui( ID.ConstructContainer( player.inventory, side, myItem ), w, x, y, z, side, myItem );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ID.type.isTile() )
|
if( ID.type.isTile() )
|
||||||
{
|
{
|
||||||
TileEntity TE = w.getTileEntity( x, y, z );
|
TileEntity TE = w.getTileEntity( x, y, z );
|
||||||
@@ -275,7 +281,6 @@ public enum GuiBridge implements IGuiHandler
|
|||||||
return this.updateGui( ID.ConstructContainer( player.inventory, side, TE ), w, x, y, z, side, TE );
|
return this.updateGui( ID.ConstructContainer( player.inventory, side, TE ), w, x, y, z, side, TE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new ContainerNull();
|
return new ContainerNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -411,19 +416,24 @@ public enum GuiBridge implements IGuiHandler
|
|||||||
ForgeDirection side = ForgeDirection.getOrientation( ID_ORDINAL & 0x07 );
|
ForgeDirection side = ForgeDirection.getOrientation( ID_ORDINAL & 0x07 );
|
||||||
GuiBridge ID = values()[ID_ORDINAL >> 4];
|
GuiBridge ID = values()[ID_ORDINAL >> 4];
|
||||||
boolean stem = ( ( ID_ORDINAL >> 3 ) & 1 ) == 1;
|
boolean stem = ( ( ID_ORDINAL >> 3 ) & 1 ) == 1;
|
||||||
|
if( ID.type.isItem() )
|
||||||
if( ID.type.isItem() && stem )
|
|
||||||
{
|
{
|
||||||
ItemStack it = player.inventory.getCurrentItem();
|
ItemStack it = null;
|
||||||
|
if( stem )
|
||||||
|
{
|
||||||
|
it = player.inventory.getCurrentItem();
|
||||||
|
}
|
||||||
|
else if( x >= 0 && x < player.inventory.mainInventory.length )
|
||||||
|
{
|
||||||
|
it = player.inventory.getStackInSlot( x );
|
||||||
|
}
|
||||||
Object myItem = this.getGuiObject( it, player, w, x, y, z );
|
Object myItem = this.getGuiObject( it, player, w, x, y, z );
|
||||||
if( ID.CorrectTileOrPart( myItem ) )
|
if( myItem != null && ID.CorrectTileOrPart( myItem ) )
|
||||||
return ID.ConstructGui( player.inventory, side, myItem );
|
return ID.ConstructGui( player.inventory, side, myItem );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ID.type.isTile() )
|
if( ID.type.isTile() )
|
||||||
{
|
{
|
||||||
TileEntity TE = w.getTileEntity( x, y, z );
|
TileEntity TE = w.getTileEntity( x, y, z );
|
||||||
|
|
||||||
if( TE instanceof IPartHost )
|
if( TE instanceof IPartHost )
|
||||||
{
|
{
|
||||||
( (IPartHost) TE ).getPart( side );
|
( (IPartHost) TE ).getPart( side );
|
||||||
@@ -437,7 +447,6 @@ public enum GuiBridge implements IGuiHandler
|
|||||||
return ID.ConstructGui( player.inventory, side, TE );
|
return ID.ConstructGui( player.inventory, side, TE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new GuiNull( new ContainerNull() );
|
return new GuiNull( new ContainerNull() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,11 +40,11 @@ import appeng.util.item.AEItemStack;
|
|||||||
public class PacketAssemblerAnimation extends AppEngPacket
|
public class PacketAssemblerAnimation extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public int x;
|
public final int x;
|
||||||
final public int y;
|
public final int y;
|
||||||
final public int z;
|
public final int z;
|
||||||
final public byte rate;
|
public final byte rate;
|
||||||
final public IAEItemStack is;
|
public final IAEItemStack is;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketAssemblerAnimation( ByteBuf stream ) throws IOException
|
public PacketAssemblerAnimation( ByteBuf stream ) throws IOException
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ import appeng.services.compass.ICompassCallback;
|
|||||||
public class PacketCompassRequest extends AppEngPacket implements ICompassCallback
|
public class PacketCompassRequest extends AppEngPacket implements ICompassCallback
|
||||||
{
|
{
|
||||||
|
|
||||||
final public long attunement;
|
public final long attunement;
|
||||||
final public int cx;
|
public final int cx;
|
||||||
final public int cz;
|
public final int cz;
|
||||||
final public int cdy;
|
public final int cdy;
|
||||||
|
|
||||||
EntityPlayer talkBackTo;
|
EntityPlayer talkBackTo;
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,10 @@ import appeng.hooks.CompassResult;
|
|||||||
public class PacketCompassResponse extends AppEngPacket
|
public class PacketCompassResponse extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public long attunement;
|
public final long attunement;
|
||||||
final public int cx;
|
public final int cx;
|
||||||
final public int cz;
|
public final int cz;
|
||||||
final public int cdy;
|
public final int cdy;
|
||||||
|
|
||||||
public CompassResult cr;
|
public CompassResult cr;
|
||||||
|
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ public class PacketCompressedNBT extends AppEngPacket
|
|||||||
// input.
|
// input.
|
||||||
final NBTTagCompound in;
|
final NBTTagCompound in;
|
||||||
// output...
|
// output...
|
||||||
final private ByteBuf data;
|
private final ByteBuf data;
|
||||||
final private GZIPOutputStream compressFrame;
|
private final GZIPOutputStream compressFrame;
|
||||||
int writtenBytes = 0;
|
int writtenBytes = 0;
|
||||||
boolean empty = true;
|
boolean empty = true;
|
||||||
|
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ import appeng.util.Platform;
|
|||||||
public class PacketConfigButton extends AppEngPacket
|
public class PacketConfigButton extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public Settings option;
|
public final Settings option;
|
||||||
final public boolean rotationDirection;
|
public final boolean rotationDirection;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketConfigButton( ByteBuf stream )
|
public PacketConfigButton( ByteBuf stream )
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ import appeng.util.Platform;
|
|||||||
public class PacketCraftRequest extends AppEngPacket
|
public class PacketCraftRequest extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public long amount;
|
public final long amount;
|
||||||
final public boolean heldShift;
|
public final boolean heldShift;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketCraftRequest( ByteBuf stream )
|
public PacketCraftRequest( ByteBuf stream )
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ import appeng.util.item.AEItemStack;
|
|||||||
public class PacketInventoryAction extends AppEngPacket
|
public class PacketInventoryAction extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public InventoryAction action;
|
public final InventoryAction action;
|
||||||
final public int slot;
|
public final int slot;
|
||||||
final public long id;
|
public final long id;
|
||||||
final public IAEItemStack slotItem;
|
public final IAEItemStack slotItem;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketInventoryAction( ByteBuf stream ) throws IOException
|
public PacketInventoryAction( ByteBuf stream ) throws IOException
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ import appeng.core.sync.network.INetworkInfo;
|
|||||||
public class PacketMockExplosion extends AppEngPacket
|
public class PacketMockExplosion extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public double x;
|
public final double x;
|
||||||
final public double y;
|
public final double y;
|
||||||
final public double z;
|
public final double z;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketMockExplosion( ByteBuf stream )
|
public PacketMockExplosion( ByteBuf stream )
|
||||||
|
|||||||
@@ -39,11 +39,11 @@ import appeng.util.item.AEItemStack;
|
|||||||
public class PacketPatternSlot extends AppEngPacket
|
public class PacketPatternSlot extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public IAEItemStack slotItem;
|
public final IAEItemStack slotItem;
|
||||||
|
|
||||||
final public IAEItemStack[] pattern = new IAEItemStack[9];
|
public final IAEItemStack[] pattern = new IAEItemStack[9];
|
||||||
|
|
||||||
final public boolean shift;
|
public final boolean shift;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketPatternSlot( ByteBuf stream ) throws IOException
|
public PacketPatternSlot( ByteBuf stream ) throws IOException
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ import appeng.util.Platform;
|
|||||||
public class PacketTransitionEffect extends AppEngPacket
|
public class PacketTransitionEffect extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public boolean mode;
|
public final boolean mode;
|
||||||
final double x;
|
final double x;
|
||||||
final double y;
|
final double y;
|
||||||
final double z;
|
final double z;
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ import appeng.helpers.IMouseWheelItem;
|
|||||||
public class PacketValueConfig extends AppEngPacket
|
public class PacketValueConfig extends AppEngPacket
|
||||||
{
|
{
|
||||||
|
|
||||||
final public String Name;
|
public final String Name;
|
||||||
final public String Value;
|
public final String Value;
|
||||||
|
|
||||||
// automatic.
|
// automatic.
|
||||||
public PacketValueConfig( ByteBuf stream ) throws IOException
|
public PacketValueConfig( ByteBuf stream ) throws IOException
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class CraftingTreeProcess
|
|||||||
final ICraftingPatternDetails details;
|
final ICraftingPatternDetails details;
|
||||||
final CraftingJob job;
|
final CraftingJob job;
|
||||||
final Map<CraftingTreeNode, Long> nodes = new HashMap<CraftingTreeNode, Long>();
|
final Map<CraftingTreeNode, Long> nodes = new HashMap<CraftingTreeNode, Long>();
|
||||||
final private int depth;
|
private final int depth;
|
||||||
public boolean possible = true;
|
public boolean possible = true;
|
||||||
World world;
|
World world;
|
||||||
long crafts = 0;
|
long crafts = 0;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user