Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 12cf76a62f | |||
| 919faefb15 | |||
| 71a9687b01 | |||
| e877eac7bb | |||
| 0696662254 | |||
| 1aa84945eb | |||
| 88f9c8ba40 | |||
| 0ed1054aad | |||
| 11f92f6888 | |||
| b0d3a6c743 | |||
| b252d1f269 | |||
| d4692128a5 | |||
| 599e6f3e64 | |||
| 478d400627 | |||
| fbfd13d163 | |||
| 8b4a39085e | |||
| d5dfc31210 |
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package appeng.api.exceptions;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridNode;
|
||||
|
||||
|
||||
/**
|
||||
* Exception occurred because of an already existing connection between the two {@link IGridNode}s
|
||||
*
|
||||
* Intended to signal an internal exception and not intended to be thrown by
|
||||
* any 3rd party module.
|
||||
*
|
||||
* @author yueh
|
||||
* @version rv3
|
||||
* @since rv3
|
||||
*/
|
||||
public class ExistingConnectionException extends FailedConnection
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = 2975450379720353182L;
|
||||
private static final String DEFAULT_MESSAGE = "Connection between both nodes already exists.";
|
||||
|
||||
public ExistingConnectionException()
|
||||
{
|
||||
super( DEFAULT_MESSAGE );
|
||||
}
|
||||
|
||||
public ExistingConnectionException( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,6 +24,22 @@
|
||||
package appeng.api.exceptions;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridNode;
|
||||
|
||||
|
||||
/**
|
||||
* Exception indicating a failed connection between two {@link IGridNode}s.
|
||||
*
|
||||
* Intended to signal an internal exception and not intended to be thrown by
|
||||
* any 3rd party module.
|
||||
*
|
||||
* See any subclass for a more specific reason.
|
||||
*
|
||||
* @author AlgorithmX2
|
||||
* @author yueh
|
||||
* @version rv3
|
||||
* @since rv0
|
||||
*/
|
||||
public class FailedConnection extends Exception
|
||||
{
|
||||
|
||||
@@ -32,4 +48,9 @@ public class FailedConnection extends Exception
|
||||
public FailedConnection()
|
||||
{
|
||||
}
|
||||
|
||||
public FailedConnection( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package appeng.api.exceptions;
|
||||
|
||||
|
||||
/**
|
||||
* Exception due to trying to connect one or more null values.
|
||||
*
|
||||
* Intended to signal an internal exception and not intended to be thrown by
|
||||
* any 3rd party module.
|
||||
*
|
||||
* @author yueh
|
||||
* @version rv3
|
||||
* @since rv3
|
||||
*/
|
||||
public class NullNodeConnectionException extends FailedConnection
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = -2143719383495321764L;
|
||||
private static final String DEFAULT_MESSAGE = "Connection forged between null entities.";
|
||||
|
||||
public NullNodeConnectionException()
|
||||
{
|
||||
super( DEFAULT_MESSAGE );
|
||||
}
|
||||
|
||||
public NullNodeConnectionException( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package appeng.api.exceptions;
|
||||
|
||||
|
||||
/**
|
||||
* Exception due to trying to connect different security realms.
|
||||
*
|
||||
* Intended to signal an internal exception and not intended to be thrown by
|
||||
* any 3rd party module.
|
||||
*
|
||||
* @author yueh
|
||||
* @version rv3
|
||||
* @since rv3
|
||||
*/
|
||||
public class SecurityConnectionException extends FailedConnection
|
||||
{
|
||||
private static final long serialVersionUID = 5048714900434215426L;
|
||||
private static final String DEFAULT_MESSAGE = "Connection failed due to different security realms.";
|
||||
|
||||
public SecurityConnectionException()
|
||||
{
|
||||
super( DEFAULT_MESSAGE );
|
||||
}
|
||||
|
||||
public SecurityConnectionException( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -61,6 +61,7 @@ import appeng.core.features.IAEFeature;
|
||||
import appeng.core.features.IFeatureHandler;
|
||||
import appeng.helpers.AEGlassMaterial;
|
||||
import appeng.helpers.ICustomCollision;
|
||||
import appeng.tile.AEBaseTile;
|
||||
import appeng.util.LookDirection;
|
||||
import appeng.util.Platform;
|
||||
|
||||
@@ -132,27 +133,21 @@ public abstract class AEBaseBlock extends Block implements IAEFeature
|
||||
return this.renderInfo;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final BaseBlockRender renderer = this.getRenderer().newInstance();
|
||||
this.renderInfo = new BlockRenderInfo( renderer );
|
||||
final BaseBlockRender<? extends AEBaseBlock, ? extends AEBaseTile> renderer = this.getRenderer();
|
||||
this.renderInfo = new BlockRenderInfo( renderer );
|
||||
|
||||
return this.renderInfo;
|
||||
}
|
||||
catch( final InstantiationException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.getRenderer(), e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of " + this.getRenderer() + " because of permissions.", e );
|
||||
}
|
||||
return this.renderInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory method to create a new render instance.
|
||||
*
|
||||
* @return the newly created instance.
|
||||
*/
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
protected BaseBlockRender<? extends AEBaseBlock, ? extends AEBaseTile> getRenderer()
|
||||
{
|
||||
return BaseBlockRender.class;
|
||||
return new BaseBlockRender<AEBaseBlock, AEBaseTile>();
|
||||
}
|
||||
|
||||
IIcon unmappedGetIcon( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
|
||||
@@ -32,7 +32,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCraftingCPUMonitor;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
import appeng.tile.crafting.TileCraftingMonitorTile;
|
||||
@@ -46,9 +45,10 @@ public class BlockCraftingMonitor extends BlockCraftingUnit
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockCraftingCPUMonitor getRenderer()
|
||||
{
|
||||
return RenderBlockCraftingCPUMonitor.class;
|
||||
return new RenderBlockCraftingCPUMonitor();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -36,7 +36,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCraftingCPU;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -59,9 +58,10 @@ public class BlockCraftingUnit extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockCraftingCPU<? extends BlockCraftingUnit, ? extends TileCraftingTile> getRenderer()
|
||||
{
|
||||
return RenderBlockCraftingCPU.class;
|
||||
return new RenderBlockCraftingCPU<BlockCraftingUnit, TileCraftingTile>();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -30,7 +30,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockAssembler;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -68,9 +67,9 @@ public class BlockMolecularAssembler extends AEBaseTileBlock
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public Class<? extends BaseBlockRender> getRenderer()
|
||||
public RenderBlockAssembler getRenderer()
|
||||
{
|
||||
return RenderBlockAssembler.class;
|
||||
return new RenderBlockAssembler();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,9 +31,11 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.implementations.tiles.ICrankable;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCrank;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.stats.Stats;
|
||||
@@ -56,9 +58,10 @@ public class BlockCrank extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
public RenderBlockCrank getRenderer()
|
||||
{
|
||||
return RenderBlockCrank.class;
|
||||
return new RenderBlockCrank();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,7 +37,6 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCharger;
|
||||
import appeng.client.render.effects.LightningFX;
|
||||
import appeng.core.AEConfig;
|
||||
@@ -63,9 +62,10 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockCharger getRenderer()
|
||||
{
|
||||
return RenderBlockCharger.class;
|
||||
return new RenderBlockCharger();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,8 +26,10 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockInscriber;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -49,9 +51,10 @@ public class BlockInscriber extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockInscriber getRenderer()
|
||||
{
|
||||
return RenderBlockInscriber.class;
|
||||
return new RenderBlockInscriber();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,9 +26,11 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockInterface;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -48,9 +50,10 @@ public class BlockInterface extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockInterface getRenderer()
|
||||
{
|
||||
return RenderBlockInterface.class;
|
||||
return new RenderBlockInterface();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -91,9 +91,10 @@ public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBl
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends RenderQuartzTorch> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderQuartzTorch getRenderer()
|
||||
{
|
||||
return RenderQuartzTorch.class;
|
||||
return new RenderQuartzTorch();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,7 +37,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockPaint;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.tile.misc.TilePaint;
|
||||
@@ -59,9 +58,10 @@ public class BlockPaint extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockPaint getRenderer()
|
||||
{
|
||||
return RenderBlockPaint.class;
|
||||
return new RenderBlockPaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -33,7 +33,6 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.util.IOrientableBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockQuartzAccelerator;
|
||||
import appeng.client.render.effects.LightningFX;
|
||||
import appeng.core.AEConfig;
|
||||
@@ -55,9 +54,10 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockQuartzAccelerator getRenderer()
|
||||
{
|
||||
return RenderBlockQuartzAccelerator.class;
|
||||
return new RenderBlockQuartzAccelerator();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -39,7 +39,6 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.api.util.IOrientableBlock;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderQuartzTorch;
|
||||
import appeng.client.render.effects.LightningFX;
|
||||
import appeng.core.AEConfig;
|
||||
@@ -63,9 +62,10 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderQuartzTorch getRenderer()
|
||||
{
|
||||
return RenderQuartzTorch.class;
|
||||
return new RenderQuartzTorch();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,8 +26,10 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RendererSecurity;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -47,9 +49,10 @@ public class BlockSecurity extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RendererSecurity getRenderer()
|
||||
{
|
||||
return RendererSecurity.class;
|
||||
return new RendererSecurity();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,7 +37,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockSkyCompass;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.ICustomCollision;
|
||||
@@ -57,9 +56,10 @@ public class BlockSkyCompass extends AEBaseTileBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockSkyCompass getRenderer()
|
||||
{
|
||||
return RenderBlockSkyCompass.class;
|
||||
return new RenderBlockSkyCompass();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,9 +40,10 @@ import net.minecraft.world.Explosion;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import cpw.mods.fml.common.registry.EntityRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderTinyTNT;
|
||||
import appeng.client.texture.FullIcon;
|
||||
import appeng.core.AppEng;
|
||||
@@ -70,9 +71,10 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderTinyTNT getRenderer()
|
||||
{
|
||||
return RenderTinyTNT.class;
|
||||
return new RenderTinyTNT();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -89,19 +91,18 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
public boolean onBlockActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
{
|
||||
if( player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.flint_and_steel )
|
||||
{
|
||||
this.startFuse( w, x, y, z, player );
|
||||
w.setBlockToAir( x, y, z );
|
||||
player.getCurrentEquippedItem().damageItem( 1, player );
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return super.onActivated( w, x, y, z, player, side, hitX, hitY, hitZ );
|
||||
}
|
||||
|
||||
return super.onBlockActivated( w, x, y, z, player, side, hitX, hitY, hitZ );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -110,16 +111,6 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
// no images required.
|
||||
}
|
||||
|
||||
public void startFuse( final World w, final int x, final int y, final int z, final EntityLivingBase igniter )
|
||||
{
|
||||
if( !w.isRemote )
|
||||
{
|
||||
final EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, igniter );
|
||||
w.spawnEntityInWorld( primedTinyTNTEntity );
|
||||
w.playSoundAtEntity( primedTinyTNTEntity, "game.tnt.primed", 1.0F, 1.0F );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
@@ -185,4 +176,14 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
{
|
||||
out.add( AxisAlignedBB.getBoundingBox( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) );
|
||||
}
|
||||
|
||||
public void startFuse( final World w, final int x, final int y, final int z, final EntityLivingBase igniter )
|
||||
{
|
||||
if( !w.isRemote )
|
||||
{
|
||||
final EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, igniter );
|
||||
w.spawnEntityInWorld( primedTinyTNTEntity );
|
||||
w.playSoundAtEntity( primedTinyTNTEntity, "game.tnt.primed", 1.0F, 1.0F );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,6 @@ import appeng.api.parts.PartItemStack;
|
||||
import appeng.api.parts.SelectedPart;
|
||||
import appeng.api.util.AEColor;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.BusRenderHelper;
|
||||
import appeng.client.render.blocks.RendererCableBus;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
@@ -414,9 +413,10 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RendererCableBus getRenderer()
|
||||
{
|
||||
return RendererCableBus.class;
|
||||
return new RendererCableBus();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,8 +25,10 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockController;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.tile.networking.TileController;
|
||||
@@ -54,8 +56,9 @@ public class BlockController extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockController getRenderer()
|
||||
{
|
||||
return RenderBlockController.class;
|
||||
return new RenderBlockController();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
import appeng.block.AEBaseItemBlock;
|
||||
import appeng.block.AEBaseItemBlockChargeable;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockEnergyCube;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -55,9 +54,10 @@ public class BlockEnergyCell extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockEnergyCube getRenderer()
|
||||
{
|
||||
return RenderBlockEnergyCube.class;
|
||||
return new RenderBlockEnergyCube();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,8 +29,10 @@ import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockWireless;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -54,9 +56,10 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockWireless getRenderer()
|
||||
{
|
||||
return RenderBlockWireless.class;
|
||||
return new RenderBlockWireless();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,6 +25,9 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.blocks.RenderQNB;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -69,9 +72,10 @@ public abstract class BlockQuantumBase extends AEBaseTileBlock implements ICusto
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends RenderQNB> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderQNB getRenderer()
|
||||
{
|
||||
return RenderQNB.class;
|
||||
return new RenderQNB();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderQuartzGlass;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.AEGlassMaterial;
|
||||
@@ -46,9 +45,9 @@ public class BlockQuartzGlass extends AEBaseBlock
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public Class<? extends BaseBlockRender> getRenderer()
|
||||
public RenderQuartzGlass getRenderer()
|
||||
{
|
||||
return RenderQuartzGlass.class;
|
||||
return new RenderQuartzGlass();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,10 +31,12 @@ import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.exceptions.MissingDefinition;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderQuartzOre;
|
||||
import appeng.core.features.AEFeature;
|
||||
|
||||
@@ -57,9 +59,10 @@ public class OreQuartz extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderQuartzOre getRenderer()
|
||||
{
|
||||
return RenderQuartzOre.class;
|
||||
return new RenderQuartzOre();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,7 +38,6 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderNull;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.ICustomCollision;
|
||||
@@ -58,9 +57,10 @@ public class BlockMatrixFrame extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderNull getRenderer()
|
||||
{
|
||||
return RenderNull.class;
|
||||
return new RenderNull();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,8 +25,10 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderSpatialPylon;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.AEGlassMaterial;
|
||||
@@ -65,8 +67,9 @@ public class BlockSpatialPylon extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderSpatialPylon getRenderer()
|
||||
{
|
||||
return RenderSpatialPylon.class;
|
||||
return new RenderSpatialPylon();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,12 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.storage.ICellHandler;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderMEChest;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.localization.PlayerMessages;
|
||||
@@ -50,9 +52,10 @@ public class BlockChest extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderMEChest getRenderer()
|
||||
{
|
||||
return RenderMEChest.class;
|
||||
return new RenderMEChest();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,8 +26,10 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderDrive;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -46,9 +48,10 @@ public class BlockDrive extends AEBaseTileBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderDrive getRenderer()
|
||||
{
|
||||
return RenderDrive.class;
|
||||
return new RenderDrive();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -43,7 +43,6 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockSkyChest;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
@@ -83,9 +82,10 @@ public class BlockSkyChest extends AEBaseTileBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
@SideOnly( Side.CLIENT )
|
||||
protected RenderBlockSkyChest getRenderer()
|
||||
{
|
||||
return RenderBlockSkyChest.class;
|
||||
return new RenderBlockSkyChest();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -383,9 +383,7 @@ public class GuiCraftConfirm extends AEBaseGui
|
||||
|
||||
if( this.tooltip >= 0 && dspToolTip.length() > 0 )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, 0, dspToolTip );
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -334,9 +334,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
|
||||
|
||||
if( this.tooltip >= 0 && dspToolTip.length() > 0 )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, 0, dspToolTip );
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -202,9 +202,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
|
||||
|
||||
if( this.tooltip >= 0 && toolTip.length() > 0 )
|
||||
{
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
this.drawTooltip( toolPosX, toolPosY + 10, 0, toolTip );
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -67,17 +67,21 @@ public class AppEngRenderItem extends RenderItem
|
||||
final double health = is.getItem().getDurabilityForDisplay( is );
|
||||
final int j1 = (int) Math.round( 13.0D - health * 13.0D );
|
||||
final int k = (int) Math.round( 255.0D - health * 255.0D );
|
||||
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
GL11.glDisable( GL11.GL_DEPTH_TEST );
|
||||
GL11.glDisable( GL11.GL_TEXTURE_2D );
|
||||
GL11.glDisable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glDisable( GL11.GL_BLEND );
|
||||
|
||||
final Tessellator tessellator = Tessellator.instance;
|
||||
final int l = 255 - k << 16 | k << 8;
|
||||
final int i1 = ( 255 - k ) / 4 << 16 | 16128;
|
||||
|
||||
this.renderQuad( tessellator, par4 + 2, par5 + 13, 13, 2, 0 );
|
||||
this.renderQuad( tessellator, par4 + 2, par5 + 13, 12, 1, i1 );
|
||||
this.renderQuad( tessellator, par4 + 2, par5 + 13, j1, 1, l );
|
||||
|
||||
GL11.glEnable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glEnable( GL11.GL_TEXTURE_2D );
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
@@ -88,19 +92,23 @@ public class AppEngRenderItem extends RenderItem
|
||||
if( is.stackSize == 0 )
|
||||
{
|
||||
final String craftLabelText = AEConfig.instance.useTerminalUseLargeFont() ? GuiText.LargeFontCraft.getLocal() : GuiText.SmallFontCraft.getLocal();
|
||||
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
GL11.glDisable( GL11.GL_DEPTH_TEST );
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScaled( scaleFactor, scaleFactor, scaleFactor );
|
||||
|
||||
final int X = (int) ( ( (float) par4 + offset + 16.0f - fontRenderer.getStringWidth( craftLabelText ) * scaleFactor ) * inverseScaleFactor );
|
||||
final int Y = (int) ( ( (float) par5 + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor );
|
||||
fontRenderer.drawStringWithShadow( craftLabelText, X, Y, 16777215 );
|
||||
|
||||
GL11.glPopMatrix();
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
GL11.glEnable( GL11.GL_DEPTH_TEST );
|
||||
}
|
||||
|
||||
final long amount = this.aeStack != null ? this.aeStack.getStackSize() : is.stackSize;
|
||||
|
||||
if( amount != 0 )
|
||||
{
|
||||
final String stackSize = this.getToBeRenderedStackSize( amount );
|
||||
@@ -109,9 +117,11 @@ public class AppEngRenderItem extends RenderItem
|
||||
GL11.glDisable( GL11.GL_DEPTH_TEST );
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScaled( scaleFactor, scaleFactor, scaleFactor );
|
||||
|
||||
final int X = (int) ( ( (float) par4 + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor );
|
||||
final int Y = (int) ( ( (float) par5 + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor );
|
||||
fontRenderer.drawStringWithShadow( stackSize, X, Y, 16777215 );
|
||||
|
||||
GL11.glPopMatrix();
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
GL11.glEnable( GL11.GL_DEPTH_TEST );
|
||||
|
||||
@@ -283,8 +283,8 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
public void renderInventory( final B block, final ItemStack item, final RenderBlocks renderer, final ItemRenderType type, final Object[] data )
|
||||
{
|
||||
final Tessellator tess = Tessellator.instance;
|
||||
|
||||
final BlockRenderInfo info = block.getRendererInstance();
|
||||
|
||||
if( info.isValid() )
|
||||
{
|
||||
if( block.hasSubtypes() )
|
||||
@@ -330,8 +330,14 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
|
||||
public void renderInvBlock( final EnumSet<ForgeDirection> sides, final B block, final ItemStack item, final Tessellator tess, final int color, final RenderBlocks renderer )
|
||||
{
|
||||
if( block == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int meta = 0;
|
||||
if( block != null && block.hasSubtypes() && item != null )
|
||||
|
||||
if( block.hasSubtypes() && item != null )
|
||||
{
|
||||
meta = item.getItemDamage();
|
||||
}
|
||||
@@ -400,6 +406,7 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
return o;
|
||||
}
|
||||
}
|
||||
|
||||
return ExtraBlockTextures.getMissing();
|
||||
}
|
||||
|
||||
@@ -410,6 +417,7 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
final boolean o = renderer.renderStandardBlock( block, x, y, z );
|
||||
|
||||
this.postRenderInWorld( renderer );
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
@@ -418,6 +426,7 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
|
||||
final BlockRenderInfo info = block.getRendererInstance();
|
||||
final IOrientable te = this.getOrientable( block, world, x, y, z );
|
||||
|
||||
if( te != null )
|
||||
{
|
||||
final ForgeDirection forward = te.getForward();
|
||||
@@ -450,13 +459,7 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
renderer.setRenderBounds( i / 16.0, j / 16.0, k / 16.0, l / 16.0, m / 16.0, n / 16.0 );
|
||||
}
|
||||
|
||||
protected void renderBlockBounds( final RenderBlocks renderer,
|
||||
|
||||
double minX, double minY, double minZ,
|
||||
|
||||
double maxX, double maxY, double maxZ,
|
||||
|
||||
final ForgeDirection x, final ForgeDirection y, final ForgeDirection z )
|
||||
protected void renderBlockBounds( final RenderBlocks renderer, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, final ForgeDirection x, final ForgeDirection y, final ForgeDirection z )
|
||||
{
|
||||
minX /= 16.0;
|
||||
minY /= 16.0;
|
||||
@@ -763,6 +766,7 @@ public class BaseBlockRender<B extends AEBaseBlock, T extends AEBaseTile>
|
||||
if( itemstack != null )
|
||||
{
|
||||
final EntityItem entityitem = new EntityItem( par1EntityItemFrame.getWorldObj(), 0.0D, 0.0D, 0.0D, itemstack );
|
||||
|
||||
entityitem.getEntityItem().stackSize = 1;
|
||||
|
||||
// set all this stuff and then do shit? meh?
|
||||
|
||||
@@ -22,14 +22,16 @@ package appeng.client.render;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.client.texture.FlippableIcon;
|
||||
import appeng.client.texture.TmpFlippableIcon;
|
||||
import appeng.tile.AEBaseTile;
|
||||
|
||||
|
||||
public class BlockRenderInfo
|
||||
{
|
||||
|
||||
private final BaseBlockRender rendererInstance;
|
||||
private final BaseBlockRender<? extends AEBaseBlock, ? extends AEBaseTile> rendererInstance;
|
||||
private final TmpFlippableIcon tmpTopIcon = new TmpFlippableIcon();
|
||||
private final TmpFlippableIcon tmpBottomIcon = new TmpFlippableIcon();
|
||||
private final TmpFlippableIcon tmpSouthIcon = new TmpFlippableIcon();
|
||||
@@ -44,7 +46,7 @@ public class BlockRenderInfo
|
||||
private FlippableIcon eastIcon = null;
|
||||
private FlippableIcon westIcon = null;
|
||||
|
||||
public BlockRenderInfo( final BaseBlockRender inst )
|
||||
public BlockRenderInfo( final BaseBlockRender<? extends AEBaseBlock, ? extends AEBaseTile> inst )
|
||||
{
|
||||
this.rendererInstance = inst;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public final class BusRenderHelper implements IPartRenderHelper
|
||||
|
||||
private final BoundBoxCalculator bbc;
|
||||
private final boolean noAlphaPass;
|
||||
private final BaseBlockRender bbr;
|
||||
private final BaseBlockRender<AEBaseBlock, AEBaseTile> bbr;
|
||||
private final Optional<Block> maybeBlock;
|
||||
private final Optional<AEBaseBlock> maybeBaseBlock;
|
||||
private int renderingForPass;
|
||||
|
||||
@@ -74,7 +74,7 @@ public class BusRenderer implements IItemRenderer
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT );
|
||||
GL11.glEnable( GL11.GL_DEPTH_TEST );
|
||||
GL11.glEnable( GL11.GL_TEXTURE_2D );
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
@@ -147,6 +147,7 @@ public class BusRenderer implements IItemRenderer
|
||||
else
|
||||
{
|
||||
final IPart ip = this.getRenderer( item, (IPartItem) item.getItem() );
|
||||
|
||||
if( ip != null )
|
||||
{
|
||||
if( type == ItemRenderType.ENTITY )
|
||||
@@ -171,6 +172,7 @@ public class BusRenderer implements IItemRenderer
|
||||
final int id = ( Item.getIdFromItem( is.getItem() ) << Platform.DEF_OFFSET ) | is.getItemDamage();
|
||||
|
||||
IPart part = RENDER_PART.get( id );
|
||||
|
||||
if( part == null )
|
||||
{
|
||||
part = c.createPartFromItemStack( is );
|
||||
|
||||
@@ -85,6 +85,7 @@ public class CableRenderHelper
|
||||
* snag list of boxes...
|
||||
*/
|
||||
final List<AxisAlignedBB> boxes = new ArrayList<AxisAlignedBB>();
|
||||
|
||||
for( final ForgeDirection s : ForgeDirection.values() )
|
||||
{
|
||||
final IPart part = cableBusContainer.getPart( s );
|
||||
@@ -120,6 +121,7 @@ public class CableRenderHelper
|
||||
for( final ForgeDirection s : ForgeDirection.VALID_DIRECTIONS )
|
||||
{
|
||||
final IFacadePart fPart = iFacadeContainer.getFacade( s );
|
||||
|
||||
if( fPart != null )
|
||||
{
|
||||
fPart.setThinFacades( useThinFacades );
|
||||
@@ -214,6 +216,7 @@ public class CableRenderHelper
|
||||
for( final ForgeDirection s : ForgeDirection.values() )
|
||||
{
|
||||
final IPart part = cableBusContainer.getPart( s );
|
||||
|
||||
if( part != null )
|
||||
{
|
||||
final ForgeDirection ax;
|
||||
|
||||
@@ -46,7 +46,7 @@ public class ItemRenderer implements IItemRenderer
|
||||
public void renderItem( final ItemRenderType type, final ItemStack item, final Object... data )
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT );
|
||||
GL11.glEnable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glEnable( GL11.GL_DEPTH_TEST );
|
||||
GL11.glEnable( GL11.GL_BLEND );
|
||||
|
||||
@@ -689,7 +689,6 @@ public class RenderBlocksWorkaround extends RenderBlocks
|
||||
|
||||
private static class LightingCache implements ISimplifiedBundle
|
||||
{
|
||||
|
||||
public final int[] aoXPos;
|
||||
public final int[] aoXNeg;
|
||||
public final int[] aoYPos;
|
||||
|
||||
@@ -55,6 +55,7 @@ public class SpatialSkyRender extends IRenderHandler
|
||||
public void render( final float partialTicks, final WorldClient world, final Minecraft mc )
|
||||
{
|
||||
final long now = System.currentTimeMillis();
|
||||
|
||||
if( now - this.cycle > 2000 )
|
||||
{
|
||||
this.cycle = now;
|
||||
@@ -67,42 +68,37 @@ public class SpatialSkyRender extends IRenderHandler
|
||||
fade /= 1000;
|
||||
fade = 0.15f * ( 1.0f - Math.abs( ( fade - 1.0f ) * ( fade - 1.0f ) ) );
|
||||
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
|
||||
GL11.glDisable( GL11.GL_FOG );
|
||||
GL11.glDisable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glDisable( GL11.GL_BLEND );
|
||||
GL11.glDepthMask( false );
|
||||
GL11.glColor4f( 0.0f, 0.0f, 0.0f, 1.0f );
|
||||
|
||||
final Tessellator tessellator = Tessellator.instance;
|
||||
|
||||
for( int i = 0; i < 6; ++i )
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
|
||||
if( i == 1 )
|
||||
switch( i )
|
||||
{
|
||||
GL11.glRotatef( 90.0F, 1.0F, 0.0F, 0.0F );
|
||||
}
|
||||
|
||||
if( i == 2 )
|
||||
{
|
||||
GL11.glRotatef( -90.0F, 1.0F, 0.0F, 0.0F );
|
||||
}
|
||||
|
||||
if( i == 3 )
|
||||
{
|
||||
GL11.glRotatef( 180.0F, 1.0F, 0.0F, 0.0F );
|
||||
}
|
||||
|
||||
if( i == 4 )
|
||||
{
|
||||
GL11.glRotatef( 90.0F, 0.0F, 0.0F, 1.0F );
|
||||
}
|
||||
|
||||
if( i == 5 )
|
||||
{
|
||||
GL11.glRotatef( -90.0F, 0.0F, 0.0F, 1.0F );
|
||||
case 1:
|
||||
GL11.glRotatef( 90.0F, 1.0F, 0.0F, 0.0F );
|
||||
break;
|
||||
case 2:
|
||||
GL11.glRotatef( -90.0F, 1.0F, 0.0F, 0.0F );
|
||||
break;
|
||||
case 3:
|
||||
GL11.glRotatef( 180.0F, 1.0F, 0.0F, 0.0F );
|
||||
break;
|
||||
case 4:
|
||||
GL11.glRotatef( 90.0F, 0.0F, 0.0F, 1.0F );
|
||||
break;
|
||||
case 5:
|
||||
GL11.glRotatef( -90.0F, 0.0F, 0.0F, 1.0F );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
tessellator.startDrawingQuads();
|
||||
@@ -112,30 +108,29 @@ public class SpatialSkyRender extends IRenderHandler
|
||||
tessellator.addVertexWithUV( 100.0D, -100.0D, 100.0D, 16.0D, 16.0D );
|
||||
tessellator.addVertexWithUV( 100.0D, -100.0D, -100.0D, 16.0D, 0.0D );
|
||||
tessellator.draw();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
GL11.glDepthMask( true );
|
||||
|
||||
if( fade > 0.0f )
|
||||
{
|
||||
GL11.glDisable( GL11.GL_FOG );
|
||||
GL11.glDisable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glEnable( GL11.GL_BLEND );
|
||||
GL11.glDepthMask( false );
|
||||
GL11.glEnable( GL11.GL_FOG );
|
||||
GL11.glDisable( GL11.GL_FOG );
|
||||
GL11.glDisable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glDisable( GL11.GL_TEXTURE_2D );
|
||||
|
||||
OpenGlHelper.glBlendFunc( 770, 771, 1, 0 );
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glDepthMask( false );
|
||||
|
||||
GL11.glEnable( GL11.GL_TEXTURE_2D );
|
||||
GL11.glColor4f( fade, fade, fade, 1.0f );
|
||||
GL11.glCallList( this.dspList );
|
||||
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
}
|
||||
|
||||
GL11.glPopAttrib();
|
||||
GL11.glEnable( GL11.GL_FOG );
|
||||
GL11.glEnable( GL11.GL_ALPHA_TEST );
|
||||
GL11.glEnable( GL11.GL_BLEND );
|
||||
GL11.glDepthMask( true );
|
||||
|
||||
GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
|
||||
}
|
||||
@@ -159,6 +154,7 @@ public class SpatialSkyRender extends IRenderHandler
|
||||
iX *= dist;
|
||||
iY *= dist;
|
||||
iZ *= dist;
|
||||
|
||||
final double x = iX * 100.0D;
|
||||
final double y = iY * 100.0D;
|
||||
final double z = iZ * 100.0D;
|
||||
@@ -183,6 +179,7 @@ public class SpatialSkyRender extends IRenderHandler
|
||||
final double d23 = d17 * d12 - d20 * d13;
|
||||
final double d24 = d23 * d9 - d21 * d10;
|
||||
final double d25 = d21 * d9 + d23 * d10;
|
||||
|
||||
tessellator.addVertex( x + d24, y + d22, z + d25 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ package appeng.client.render;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
@@ -41,7 +42,7 @@ public final class WorldRender implements ISimpleBlockRenderingHandler
|
||||
{
|
||||
|
||||
public static final WorldRender INSTANCE = new WorldRender();
|
||||
private final HashMap<AEBaseBlock, BaseBlockRender> blockRenders = new HashMap<AEBaseBlock, BaseBlockRender>();
|
||||
private final Map<AEBaseBlock, BaseBlockRender> blockRenders = new HashMap<AEBaseBlock, BaseBlockRender>();
|
||||
private final int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
private final RenderBlocks renderer = new RenderBlocks();
|
||||
private boolean hasError = false;
|
||||
|
||||
@@ -203,42 +203,48 @@ public class RenderBlockAssembler extends BaseBlockRender<BlockMolecularAssemble
|
||||
{
|
||||
IIcon texture = null;
|
||||
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture = this.getConnectedCable( world, x, y, z, ForgeDirection.WEST, covered ) );
|
||||
texture = this.getConnectedCable( world, x, y, z, ForgeDirection.WEST, covered );
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture );
|
||||
if( texture != null )
|
||||
{
|
||||
renderer.setRenderBounds( 0.0D, 0.5D - thickness, 0.5D - thickness, 0.5D - thickness - pull, 0.5D + thickness, 0.5D + thickness );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture = this.getConnectedCable( world, x, y, z, ForgeDirection.EAST, covered ) );
|
||||
texture = this.getConnectedCable( world, x, y, z, ForgeDirection.EAST, covered );
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture );
|
||||
if( texture != null )
|
||||
{
|
||||
renderer.setRenderBounds( 0.5D + thickness + pull, 0.5D - thickness, 0.5D - thickness, 1.0D, 0.5D + thickness, 0.5D + thickness );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture = this.getConnectedCable( world, x, y, z, ForgeDirection.NORTH, covered ) );
|
||||
texture = this.getConnectedCable( world, x, y, z, ForgeDirection.NORTH, covered );
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture );
|
||||
if( texture != null )
|
||||
{
|
||||
renderer.setRenderBounds( 0.5D - thickness, 0.5D - thickness, 0.0D, 0.5D + thickness, 0.5D + thickness, 0.5D - thickness - pull );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture = this.getConnectedCable( world, x, y, z, ForgeDirection.SOUTH, covered ) );
|
||||
texture = this.getConnectedCable( world, x, y, z, ForgeDirection.SOUTH, covered );
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture );
|
||||
if( texture != null )
|
||||
{
|
||||
renderer.setRenderBounds( 0.5D - thickness, 0.5D - thickness, 0.5D + thickness + pull, 0.5D + thickness, 0.5D + thickness, 1.0D );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture = this.getConnectedCable( world, x, y, z, ForgeDirection.DOWN, covered ) );
|
||||
texture = this.getConnectedCable( world, x, y, z, ForgeDirection.DOWN, covered );
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture );
|
||||
if( texture != null )
|
||||
{
|
||||
renderer.setRenderBounds( 0.5D - thickness, 0.0D, 0.5D - thickness, 0.5D + thickness, 0.5D - thickness - pull, 0.5D + thickness );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture = this.getConnectedCable( world, x, y, z, ForgeDirection.UP, covered ) );
|
||||
texture = this.getConnectedCable( world, x, y, z, ForgeDirection.UP, covered );
|
||||
block.getRendererInstance().setTemporaryRenderIcon( texture );
|
||||
if( texture != null )
|
||||
{
|
||||
renderer.setRenderBounds( 0.5D - thickness, 0.5D + thickness + pull, 0.5D - thickness, 0.5D + thickness, 1.0D, 0.5D + thickness );
|
||||
@@ -251,6 +257,7 @@ public class RenderBlockAssembler extends BaseBlockRender<BlockMolecularAssemble
|
||||
private IIcon getConnectedCable( final IBlockAccess world, final int x, final int y, final int z, final ForgeDirection side, final boolean covered )
|
||||
{
|
||||
final int tileYPos = y + side.offsetY;
|
||||
|
||||
if( -1 < tileYPos && tileYPos < 256 )
|
||||
{
|
||||
final TileEntity ne = world.getTileEntity( x + side.offsetX, tileYPos, z + side.offsetZ );
|
||||
@@ -258,9 +265,11 @@ public class RenderBlockAssembler extends BaseBlockRender<BlockMolecularAssemble
|
||||
{
|
||||
final IPartHost ph = (IPartHost) ne;
|
||||
final IPart pcx = ph.getPart( ForgeDirection.UNKNOWN );
|
||||
|
||||
if( pcx instanceof PartCable )
|
||||
{
|
||||
final PartCable pc = (PartCable) pcx;
|
||||
|
||||
if( pc.isConnected( side.getOpposite() ) )
|
||||
{
|
||||
if( covered )
|
||||
|
||||
@@ -124,48 +124,59 @@ public class RenderBlockCharger extends BaseBlockRender<BlockCharger, TileCharge
|
||||
@Override
|
||||
public void renderTile( final BlockCharger block, final TileCharger tile, final Tessellator tess, final double x, final double y, final double z, final float f, final RenderBlocks renderer )
|
||||
{
|
||||
if( tile == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemStack sis = tile.getStackInSlot( 0 );
|
||||
|
||||
if( sis != null )
|
||||
if( sis == null )
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() );
|
||||
|
||||
try
|
||||
{
|
||||
GL11.glTranslatef( 0.5f, 0.45f, 0.5f );
|
||||
GL11.glScalef( 1.0f / 1.1f, 1.0f / 1.1f, 1.0f / 1.1f );
|
||||
GL11.glScalef( 1.0f, 1.0f, 1.0f );
|
||||
|
||||
final Block blk = Block.getBlockFromItem( sis.getItem() );
|
||||
if( sis.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d( blk.getRenderType() ) )
|
||||
{
|
||||
GL11.glRotatef( 25.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( 15.0f, 0.0f, 1.0f, 0.0f );
|
||||
GL11.glRotatef( 30.0f, 0.0f, 1.0f, 0.0f );
|
||||
}
|
||||
|
||||
// << 20 | light << 4;
|
||||
final int br = tile.getWorldObj().getLightBrightnessForSkyBlocks( tile.xCoord, tile.yCoord, tile.zCoord, 0 );
|
||||
final int var11 = br % 65536;
|
||||
final int var12 = br / 65536;
|
||||
|
||||
OpenGlHelper.setLightmapTextureCoords( OpenGlHelper.lightmapTexUnit, var11, var12 );
|
||||
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
GL11.glDisable( GL12.GL_RESCALE_NORMAL );
|
||||
tess.setColorOpaque_F( 1.0f, 1.0f, 1.0f );
|
||||
|
||||
this.doRenderItem( sis, tile );
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
return;
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() );
|
||||
|
||||
try
|
||||
{
|
||||
GL11.glTranslatef( 0.5f, 0.45f, 0.5f );
|
||||
GL11.glScalef( 1.0f / 1.1f, 1.0f / 1.1f, 1.0f / 1.1f );
|
||||
GL11.glScalef( 1.0f, 1.0f, 1.0f );
|
||||
|
||||
final Block blk = Block.getBlockFromItem( sis.getItem() );
|
||||
|
||||
if( sis.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d( blk.getRenderType() ) )
|
||||
{
|
||||
GL11.glRotatef( 25.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( 15.0f, 0.0f, 1.0f, 0.0f );
|
||||
GL11.glRotatef( 30.0f, 0.0f, 1.0f, 0.0f );
|
||||
}
|
||||
final int br = tile.getWorldObj().getLightBrightnessForSkyBlocks( tile.xCoord, tile.yCoord, tile.zCoord, 0 );
|
||||
final int var11 = br % 65536;
|
||||
final int var12 = br / 65536;
|
||||
|
||||
OpenGlHelper.setLightmapTextureCoords( OpenGlHelper.lightmapTexUnit, var11, var12 );
|
||||
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
GL11.glDisable( GL12.GL_RESCALE_NORMAL );
|
||||
tess.setColorOpaque_F( 1.0f, 1.0f, 1.0f );
|
||||
|
||||
this.doRenderItem( sis, tile );
|
||||
}
|
||||
catch( final Exception err )
|
||||
{
|
||||
AELog.error( err );
|
||||
}
|
||||
finally
|
||||
{
|
||||
GL11.glEnable( GL12.GL_RESCALE_NORMAL );
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,6 +124,7 @@ public class RenderBlockController extends BaseBlockRender<BlockController, Tile
|
||||
else if( ( xx ? 1 : 0 ) + ( yy ? 1 : 0 ) + ( zz ? 1 : 0 ) >= 2 )
|
||||
{
|
||||
final int v = ( Math.abs( x ) + Math.abs( y ) + Math.abs( z ) ) % 2;
|
||||
|
||||
renderer.uvRotateEast = renderer.uvRotateBottom = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0;
|
||||
|
||||
if( v == 0 )
|
||||
@@ -140,6 +141,7 @@ public class RenderBlockController extends BaseBlockRender<BlockController, Tile
|
||||
if( hasPower )
|
||||
{
|
||||
blk.getRendererInstance().setTemporaryRenderIcon( ExtraBlockTextures.BlockControllerPowered.getIcon() );
|
||||
|
||||
if( isConflict )
|
||||
{
|
||||
lights = ExtraBlockTextures.BlockControllerConflict;
|
||||
@@ -156,6 +158,7 @@ public class RenderBlockController extends BaseBlockRender<BlockController, Tile
|
||||
}
|
||||
|
||||
final boolean out = renderer.renderStandardBlock( blk, x, y, z );
|
||||
|
||||
if( lights != null )
|
||||
{
|
||||
Tessellator.instance.setColorOpaque_F( 1.0f, 1.0f, 1.0f );
|
||||
|
||||
@@ -57,21 +57,20 @@ public class RenderBlockCraftingCPU<B extends BlockCraftingUnit, T extends TileC
|
||||
@Override
|
||||
public boolean renderInWorld( final B blk, final IBlockAccess w, final int x, final int y, final int z, RenderBlocks renderer )
|
||||
{
|
||||
boolean formed = false;
|
||||
boolean emitsLight = false;
|
||||
final TileCraftingTile craftingTile = blk.getTileEntity( w, x, y, z );
|
||||
|
||||
final TileCraftingTile ct = blk.getTileEntity( w, x, y, z );
|
||||
if( ct != null && ct.isFormed() )
|
||||
if( craftingTile == null )
|
||||
{
|
||||
formed = true;
|
||||
emitsLight = ct.isPowered();
|
||||
return false;
|
||||
}
|
||||
final int meta = w.getBlockMetadata( x, y, z ) & 3;
|
||||
|
||||
final boolean formed = craftingTile.isFormed();
|
||||
final boolean emitsLight = craftingTile.isPowered();
|
||||
final int meta = w.getBlockMetadata( x, y, z ) & 3;
|
||||
final boolean isMonitor = blk.getClass() == BlockCraftingMonitor.class;
|
||||
final IIcon theIcon = blk.getIcon( ForgeDirection.SOUTH.ordinal(), meta | ( formed ? 8 : 0 ) );
|
||||
|
||||
IIcon nonForward = theIcon;
|
||||
|
||||
if( isMonitor )
|
||||
{
|
||||
for( final Block craftingBlock : AEApi.instance().definitions().blocks().craftingUnit().maybeBlock().asSet() )
|
||||
@@ -92,7 +91,7 @@ public class RenderBlockCraftingCPU<B extends BlockCraftingUnit, T extends TileC
|
||||
|
||||
try
|
||||
{
|
||||
ct.setLightCache( i.useSimplifiedRendering( x, y, z, null, ct.getLightCache() ) );
|
||||
craftingTile.setLightCache( i.useSimplifiedRendering( x, y, z, null, craftingTile.getLightCache() ) );
|
||||
}
|
||||
catch( final Throwable ignored )
|
||||
{
|
||||
@@ -122,13 +121,14 @@ public class RenderBlockCraftingCPU<B extends BlockCraftingUnit, T extends TileC
|
||||
i.setBounds( this.fso( side, lowX, ForgeDirection.WEST ), this.fso( side, lowY, ForgeDirection.DOWN ), this.fso( side, lowZ, ForgeDirection.NORTH ), this.fso( side, highX, ForgeDirection.EAST ), this.fso( side, highY, ForgeDirection.UP ), this.fso( side, highZ, ForgeDirection.SOUTH ) );
|
||||
i.prepareBounds( renderer );
|
||||
|
||||
boolean LocalEmit = emitsLight;
|
||||
if( blk instanceof BlockCraftingMonitor && ct.getForward() != side )
|
||||
boolean localEmit = emitsLight;
|
||||
|
||||
if( blk instanceof BlockCraftingMonitor && craftingTile.getForward() != side )
|
||||
{
|
||||
LocalEmit = false;
|
||||
localEmit = false;
|
||||
}
|
||||
|
||||
this.handleSide( blk, meta, x, y, z, i, renderer, ct.getForward() == side ? theIcon : nonForward, LocalEmit, isMonitor, side, w );
|
||||
this.handleSide( blk, meta, x, y, z, i, renderer, craftingTile.getForward() == side ? theIcon : nonForward, localEmit, isMonitor, side, w );
|
||||
}
|
||||
|
||||
BusRenderer.INSTANCE.getRenderer().setFacade( false );
|
||||
@@ -150,6 +150,7 @@ public class RenderBlockCraftingCPU<B extends BlockCraftingUnit, T extends TileC
|
||||
private boolean isConnected( final IBlockAccess w, final int x, final int y, final int z, final ForgeDirection side )
|
||||
{
|
||||
final int tileYPos = y + side.offsetY;
|
||||
|
||||
if( 0 <= tileYPos && tileYPos <= 255 )
|
||||
{
|
||||
final TileEntity tile = w.getTileEntity( x + side.offsetX, tileYPos, z + side.offsetZ );
|
||||
@@ -164,15 +165,7 @@ public class RenderBlockCraftingCPU<B extends BlockCraftingUnit, T extends TileC
|
||||
|
||||
private void renderCorner( final BusRenderHelper i, final RenderBlocks renderer, final IBlockAccess w, final int x, final int y, final int z, final ForgeDirection up, final ForgeDirection east, final ForgeDirection south )
|
||||
{
|
||||
if( this.isConnected( w, x, y, z, up ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if( this.isConnected( w, x, y, z, east ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if( this.isConnected( w, x, y, z, south ) )
|
||||
if( this.isConnected( w, x, y, z, up ) || this.isConnected( w, x, y, z, east ) || this.isConnected( w, x, y, z, south ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -303,6 +296,7 @@ public class RenderBlockCraftingCPU<B extends BlockCraftingUnit, T extends TileC
|
||||
if( !( i.getBound( a ) < 0.001 || i.getBound( a ) > 15.999 ) )
|
||||
{
|
||||
final double width = 3.0 / 16.0;
|
||||
|
||||
switch( a )
|
||||
{
|
||||
case DOWN:
|
||||
|
||||
@@ -68,8 +68,7 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
tile.setUpdateList( true );
|
||||
tile.setDisplayList( GLAllocation.generateDisplayLists( 1 ) );
|
||||
}
|
||||
|
||||
if( ais != null )
|
||||
else
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated( x + 0.5, y + 0.5, z + 0.5 );
|
||||
@@ -97,8 +96,8 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
|
||||
ForgeDirection walrus = side.offsetY != 0 ? ForgeDirection.SOUTH : ForgeDirection.UP;
|
||||
int spin = 0;
|
||||
|
||||
int max = 5;
|
||||
|
||||
while( walrus != cmt.getUp() && max > 0 )
|
||||
{
|
||||
max--;
|
||||
@@ -107,50 +106,43 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
}
|
||||
max--;
|
||||
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glTranslated( side.offsetX * 0.69, side.offsetY * 0.69, side.offsetZ * 0.69 );
|
||||
|
||||
final float scale = 0.7f;
|
||||
GL11.glScalef( scale, scale, scale );
|
||||
|
||||
if( side == ForgeDirection.UP )
|
||||
switch( side )
|
||||
{
|
||||
GL11.glScalef( 1.0f, -1.0f, 1.0f );
|
||||
GL11.glRotatef( 90.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( spin * 90.0F, 0, 0, 1 );
|
||||
case UP:
|
||||
GL11.glScalef( 1.0f, -1.0f, 1.0f );
|
||||
GL11.glRotatef( 90.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( spin * 90.0F, 0, 0, 1 );
|
||||
break;
|
||||
case DOWN:
|
||||
GL11.glScalef( 1.0f, -1.0f, 1.0f );
|
||||
GL11.glRotatef( -90.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( spin * -90.0F, 0, 0, 1 );
|
||||
break;
|
||||
case EAST:
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
GL11.glRotatef( -90.0f, 0.0f, 1.0f, 0.0f );
|
||||
break;
|
||||
case WEST:
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
GL11.glRotatef( 90.0f, 0.0f, 1.0f, 0.0f );
|
||||
break;
|
||||
case NORTH:
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
break;
|
||||
case SOUTH:
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
GL11.glRotatef( 180.0f, 0.0f, 1.0f, 0.0f );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( side == ForgeDirection.DOWN )
|
||||
{
|
||||
GL11.glScalef( 1.0f, -1.0f, 1.0f );
|
||||
GL11.glRotatef( -90.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( spin * -90.0F, 0, 0, 1 );
|
||||
}
|
||||
|
||||
if( side == ForgeDirection.EAST )
|
||||
{
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
GL11.glRotatef( -90.0f, 0.0f, 1.0f, 0.0f );
|
||||
}
|
||||
|
||||
if( side == ForgeDirection.WEST )
|
||||
{
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
GL11.glRotatef( 90.0f, 0.0f, 1.0f, 0.0f );
|
||||
}
|
||||
|
||||
if( side == ForgeDirection.NORTH )
|
||||
{
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
}
|
||||
|
||||
if( side == ForgeDirection.SOUTH )
|
||||
{
|
||||
GL11.glScalef( -1.0f, -1.0f, -1.0f );
|
||||
GL11.glRotatef( 180.0f, 0.0f, 1.0f, 0.0f );
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
try
|
||||
{
|
||||
final ItemStack sis = ais.getItemStack();
|
||||
@@ -159,6 +151,7 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
final int br = 16 << 20 | 16 << 4;
|
||||
final int var11 = br % 65536;
|
||||
final int var12 = br / 65536;
|
||||
|
||||
OpenGlHelper.setLightmapTextureCoords( OpenGlHelper.lightmapTexUnit, var11 * 0.8F, var12 * 0.8F );
|
||||
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
@@ -174,8 +167,11 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
{
|
||||
AELog.error( e );
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
finally
|
||||
{
|
||||
GL11.glEnable( GL12.GL_RESCALE_NORMAL );
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
}
|
||||
|
||||
GL11.glTranslatef( 0.0f, 0.14f, -0.24f );
|
||||
GL11.glScalef( 1.0f / 62.0f, 1.0f / 62.0f, 1.0f / 62.0f );
|
||||
@@ -185,9 +181,8 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU<BlockC
|
||||
|
||||
final FontRenderer fr = Minecraft.getMinecraft().fontRenderer;
|
||||
final int width = fr.getStringWidth( renderedStackSize );
|
||||
|
||||
GL11.glTranslatef( -0.5f * width, 0.0f, -1.0f );
|
||||
fr.drawString( renderedStackSize, 0, 0, 0 );
|
||||
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +71,6 @@ public class RenderBlockCrank extends BaseBlockRender<BlockCrank, TileCrank>
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture( TextureMap.locationBlocksTexture );
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
|
||||
@@ -84,6 +83,7 @@ public class RenderBlockCrank extends BaseBlockRender<BlockCrank, TileCrank>
|
||||
GL11.glShadeModel( GL11.GL_FLAT );
|
||||
}
|
||||
|
||||
GL11.glCullFace( GL11.GL_FRONT );
|
||||
GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
|
||||
|
||||
this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() );
|
||||
@@ -107,6 +107,9 @@ public class RenderBlockCrank extends BaseBlockRender<BlockCrank, TileCrank>
|
||||
|
||||
tess.draw();
|
||||
tess.setTranslation( 0, 0, 0 );
|
||||
|
||||
GL11.glCullFace( GL11.GL_BACK );
|
||||
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ public class RenderBlockEnergyCube extends BaseBlockRender<BlockEnergyCell, Tile
|
||||
final int meta = world.getBlockMetadata( x, y, z );
|
||||
|
||||
renderer.overrideBlockTexture = blk.getIcon( 0, meta );
|
||||
|
||||
final boolean out = renderer.renderStandardBlock( blk, x, y, z );
|
||||
renderer.overrideBlockTexture = null;
|
||||
|
||||
|
||||
@@ -58,7 +58,6 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
{
|
||||
private static final float ITEM_RENDER_SCALE = 1.0f / 1.1f;
|
||||
|
||||
|
||||
public RenderBlockInscriber()
|
||||
{
|
||||
super( true, 30 );
|
||||
@@ -108,14 +107,15 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
@Override
|
||||
public boolean renderInWorld( final BlockInscriber block, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer )
|
||||
{
|
||||
this.preRenderInWorld( block, world, x, y, z, renderer );
|
||||
|
||||
final IOrientable te = this.getOrientable( block, world, x, y, z );
|
||||
|
||||
if( te == null )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
this.preRenderInWorld( block, world, x, y, z, renderer );
|
||||
|
||||
final ForgeDirection fdy = te.getUp();
|
||||
final ForgeDirection fdz = te.getForward();
|
||||
final ForgeDirection fdx = Platform.crossProduct( fdz, fdy ).getOpposite();
|
||||
@@ -151,6 +151,8 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
@Override
|
||||
public void renderTile( final BlockInscriber block, final TileInscriber tile, final Tessellator tess, final double x, final double y, final double z, final float f, final RenderBlocks renderer )
|
||||
{
|
||||
// render inscriber
|
||||
|
||||
GL11.glPushMatrix();
|
||||
this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() );
|
||||
|
||||
@@ -223,11 +225,11 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
|
||||
tess.draw();
|
||||
|
||||
GL11.glCullFace( GL11.GL_BACK );
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
GL11.glEnable( GL12.GL_RESCALE_NORMAL );
|
||||
GL11.glPopMatrix();
|
||||
|
||||
// render items.
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
|
||||
int items = 0;
|
||||
if( tile.getStackInSlot( 0 ) != null )
|
||||
{
|
||||
@@ -259,18 +261,14 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
GL11.glDisable( GL12.GL_RESCALE_NORMAL );
|
||||
|
||||
this.renderItem( tile.getStackInSlot( 0 ), press, block, tile, tess, x, y, z, f, renderer );
|
||||
this.renderItem( tile.getStackInSlot( 1 ), -press, block, tile, tess, x, y, z, f, renderer );
|
||||
this.renderItem( tile.getStackInSlot( 2 ), 0.0f, block, tile, tess, x, y, z, f, renderer );
|
||||
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
GL11.glEnable( GL12.GL_RESCALE_NORMAL );
|
||||
}
|
||||
|
||||
GL11.glEnable( GL11.GL_LIGHTING );
|
||||
GL11.glEnable( GL12.GL_RESCALE_NORMAL );
|
||||
GL11.glCullFace( GL11.GL_BACK );
|
||||
}
|
||||
|
||||
private void renderItem( ItemStack sis, final float o, final AEBaseBlock block, final AEBaseTile tile, final Tessellator tess, final double x, final double y, final double z, final float f, final RenderBlocks renderer )
|
||||
@@ -278,6 +276,7 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
if( sis != null )
|
||||
{
|
||||
sis = sis.copy();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
// fix to inscriber
|
||||
this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() );
|
||||
@@ -289,7 +288,6 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
|
||||
// set scale
|
||||
GL11.glScalef( ITEM_RENDER_SCALE, ITEM_RENDER_SCALE, ITEM_RENDER_SCALE );
|
||||
GL11.glScalef( 1.0f, 1.0f, 1.0f );
|
||||
|
||||
final Block blk = Block.getBlockFromItem( sis.getItem() );
|
||||
|
||||
@@ -297,12 +295,15 @@ public class RenderBlockInscriber extends BaseBlockRender<BlockInscriber, TileIn
|
||||
if( sis.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d( blk.getRenderType() ) )
|
||||
{
|
||||
// rotate block in angle to make it more plastic
|
||||
GL11.glRotatef( 25.0f, 1.0f, 0.0f, 0.0f );
|
||||
GL11.glRotatef( 15.0f, 0.0f, 1.0f, 0.0f );
|
||||
GL11.glRotatef( 30.0f, 0.0f, 1.0f, 0.0f );
|
||||
GL11.glRotatef( 22.5f, 1f, 0f, 0f );
|
||||
GL11.glRotatef( -33.75f, 0f, 1f, 0f );
|
||||
}
|
||||
else
|
||||
{
|
||||
// rotate item to match the inventory icon orientation.
|
||||
GL11.glRotatef( -90.0f, 1f, 0f, 0f );
|
||||
GL11.glRotatef( 180.0f, 0f, 1f, 0f );
|
||||
}
|
||||
|
||||
GL11.glRotatef( 90.0f, 1, 0, 0 );
|
||||
|
||||
// << 20 | light << 4;
|
||||
final int br = tile.getWorldObj().getLightBrightnessForSkyBlocks( tile.xCoord, tile.yCoord, tile.zCoord, 0 );
|
||||
|
||||
@@ -55,6 +55,7 @@ public class RenderBlockPaint extends BaseBlockRender<BlockPaint, TilePaint>
|
||||
{
|
||||
final TilePaint tp = imb.getTileEntity( world, x, y, z );
|
||||
boolean out = false;
|
||||
|
||||
if( tp != null )
|
||||
{
|
||||
// super.renderInWorld( imb, world, x, y, z, renderer );
|
||||
|
||||
@@ -42,17 +42,22 @@ public class RenderBlockQuartzAccelerator extends BaseBlockRender<BlockQuartzGro
|
||||
public boolean renderInWorld( final BlockQuartzGrowthAccelerator blk, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer )
|
||||
{
|
||||
final TileEntity te = world.getTileEntity( x, y, z );
|
||||
|
||||
if( te instanceof TileQuartzGrowthAccelerator )
|
||||
{
|
||||
if( ( (TileQuartzGrowthAccelerator) te ).isPowered() )
|
||||
final TileQuartzGrowthAccelerator tileCGA = (TileQuartzGrowthAccelerator) te;
|
||||
|
||||
if( tileCGA.isPowered() )
|
||||
{
|
||||
final IIcon top_Bottom = ExtraBlockTextures.BlockQuartzGrowthAcceleratorOn.getIcon();
|
||||
final IIcon side = ExtraBlockTextures.BlockQuartzGrowthAcceleratorSideOn.getIcon();
|
||||
|
||||
blk.getRendererInstance().setTemporaryRenderIcons( top_Bottom, top_Bottom, side, side, side, side );
|
||||
}
|
||||
}
|
||||
|
||||
final boolean out = super.renderInWorld( blk, world, x, y, z, renderer );
|
||||
|
||||
blk.getRendererInstance().setTemporaryRenderIcon( null );
|
||||
|
||||
return out;
|
||||
|
||||
@@ -85,12 +85,7 @@ public class RenderBlockSkyChest extends BaseBlockRender<BlockSkyChest, TileSkyC
|
||||
@Override
|
||||
public void renderTile( final BlockSkyChest block, final TileSkyChest skyChest, final Tessellator tess, final double x, final double y, final double z, final float partialTick, final RenderBlocks renderer )
|
||||
{
|
||||
if( skyChest == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( !skyChest.hasWorldObj() )
|
||||
if( skyChest == null || !skyChest.hasWorldObj() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ import appeng.tile.misc.TileSkyCompass;
|
||||
|
||||
public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, TileSkyCompass>
|
||||
{
|
||||
private static final ResourceLocation TEXTURE_SKY_COMPASS = new ResourceLocation( "appliedenergistics2", "textures/models/compass.png" );
|
||||
|
||||
private final ModelCompass model = new ModelCompass();
|
||||
|
||||
@@ -57,8 +58,8 @@ public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, Tile
|
||||
if( type == ItemRenderType.INVENTORY )
|
||||
{
|
||||
boolean isGood = false;
|
||||
|
||||
final IInventory inv = Minecraft.getMinecraft().thePlayer.inventory;
|
||||
|
||||
for( int x = 0; x < inv.getSizeInventory(); x++ )
|
||||
{
|
||||
if( inv.getStackInSlot( x ) == is )
|
||||
@@ -76,9 +77,7 @@ public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, Tile
|
||||
GL11.glEnable( GL12.GL_RESCALE_NORMAL );
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
|
||||
final ResourceLocation loc = new ResourceLocation( "appliedenergistics2", "textures/models/compass.png" );
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture( loc );
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture( TEXTURE_SKY_COMPASS );
|
||||
|
||||
if( type == ItemRenderType.ENTITY )
|
||||
{
|
||||
@@ -108,6 +107,7 @@ public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, Tile
|
||||
}
|
||||
|
||||
long now = System.currentTimeMillis();
|
||||
|
||||
if( type == ItemRenderType.EQUIPPED_FIRST_PERSON || type == ItemRenderType.INVENTORY || type == ItemRenderType.EQUIPPED )
|
||||
{
|
||||
EntityPlayer p = Minecraft.getMinecraft().thePlayer;
|
||||
@@ -145,12 +145,14 @@ public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, Tile
|
||||
{
|
||||
final float offRads = rYaw / 180.0f * (float) Math.PI;
|
||||
final float adjustment = (float) Math.PI * 0.74f;
|
||||
|
||||
this.model.renderAll( (float) this.flipidiy( cr.getRad() + offRads + adjustment ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
final float offRads = rYaw / 180.0f * (float) Math.PI;
|
||||
final float adjustment = (float) Math.PI * -0.74f;
|
||||
|
||||
this.model.renderAll( (float) this.flipidiy( cr.getRad() + offRads + adjustment ) );
|
||||
}
|
||||
}
|
||||
@@ -194,9 +196,7 @@ public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, Tile
|
||||
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||
GL11.glCullFace( GL11.GL_FRONT );
|
||||
|
||||
final ResourceLocation loc = new ResourceLocation( "appliedenergistics2", "textures/models/compass.png" );
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture( loc );
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture( TEXTURE_SKY_COMPASS );
|
||||
|
||||
this.applyTESRRotation( x, y, z, skyCompass.getUp(), skyCompass.getForward() );
|
||||
|
||||
@@ -204,8 +204,8 @@ public class RenderBlockSkyCompass extends BaseBlockRender<BlockSkyCompass, Tile
|
||||
GL11.glTranslatef( 0.5F, -1.5F, -0.5F );
|
||||
|
||||
long now = System.currentTimeMillis();
|
||||
|
||||
CompassResult cr = null;
|
||||
|
||||
if( skyCompass.getForward() == ForgeDirection.UP || skyCompass.getForward() == ForgeDirection.DOWN )
|
||||
{
|
||||
cr = CompassManager.INSTANCE.getCompassDirection( 0, skyCompass.xCoord, skyCompass.yCoord, skyCompass.zCoord );
|
||||
|
||||
@@ -64,6 +64,7 @@ public class RenderBlockWireless extends BaseBlockRender<BlockWireless, TileWire
|
||||
this.centerZ = 0;
|
||||
this.hasChan = false;
|
||||
this.hasPower = false;
|
||||
|
||||
final BlockRenderInfo ri = blk.getRendererInstance();
|
||||
final Tessellator tess = Tessellator.instance;
|
||||
|
||||
@@ -111,6 +112,7 @@ public class RenderBlockWireless extends BaseBlockRender<BlockWireless, TileWire
|
||||
{
|
||||
final TileWireless tw = blk.getTileEntity( world, x, y, z );
|
||||
this.blk = blk;
|
||||
|
||||
if( tw != null )
|
||||
{
|
||||
this.hasChan = ( tw.getClientFlags() & ( TileWireless.POWERED_FLAG | TileWireless.CHANNEL_FLAG ) ) == ( TileWireless.POWERED_FLAG | TileWireless.CHANNEL_FLAG );
|
||||
|
||||
@@ -58,15 +58,15 @@ public class RenderDrive extends BaseBlockRender<BlockDrive, TileDrive>
|
||||
public boolean renderInWorld( final BlockDrive imb, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer )
|
||||
{
|
||||
final TileDrive sp = imb.getTileEntity( world, x, y, z );
|
||||
renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 );
|
||||
|
||||
final ForgeDirection up = sp.getUp();
|
||||
final ForgeDirection forward = sp.getForward();
|
||||
final ForgeDirection west = Platform.crossProduct( forward, up );
|
||||
|
||||
final boolean result = super.renderInWorld( imb, world, x, y, z, renderer );
|
||||
final Tessellator tess = Tessellator.instance;
|
||||
renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 );
|
||||
|
||||
final boolean result = super.renderInWorld( imb, world, x, y, z, renderer );
|
||||
|
||||
final Tessellator tess = Tessellator.instance;
|
||||
final IIcon ico = ExtraBlockTextures.MEStorageCellTextures.getIcon();
|
||||
|
||||
final int b = world.getLightBrightnessForSkyBlocks( x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ, 0 );
|
||||
@@ -76,6 +76,7 @@ public class RenderDrive extends BaseBlockRender<BlockDrive, TileDrive>
|
||||
for( int xx = 0; xx < 2; xx++ )
|
||||
{
|
||||
final int stat = sp.getCellStatus( yy * 2 + ( 1 - xx ) );
|
||||
|
||||
this.selectFace( renderer, west, up, forward, 2 + xx * 7, 7 + xx * 7, 1 + yy * 3, 3 + yy * 3 );
|
||||
|
||||
int spin = 0;
|
||||
|
||||
@@ -53,6 +53,7 @@ public class RenderMEChest extends BaseBlockRender<BlockChest, TileChest>
|
||||
public void renderInventory( final BlockChest block, final ItemStack is, final RenderBlocks renderer, final ItemRenderType type, final Object[] obj )
|
||||
{
|
||||
Tessellator.instance.setBrightness( 0 );
|
||||
|
||||
renderer.overrideBlockTexture = ExtraBlockTextures.getMissing();
|
||||
this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer );
|
||||
|
||||
@@ -67,13 +68,14 @@ public class RenderMEChest extends BaseBlockRender<BlockChest, TileChest>
|
||||
public boolean renderInWorld( final BlockChest imb, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer )
|
||||
{
|
||||
final TileChest sp = imb.getTileEntity( world, x, y, z );
|
||||
renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 );
|
||||
|
||||
if( sp == null )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 );
|
||||
|
||||
final ForgeDirection up = sp.getUp();
|
||||
final ForgeDirection forward = sp.getForward();
|
||||
final ForgeDirection west = Platform.crossProduct( forward, up );
|
||||
@@ -97,6 +99,7 @@ public class RenderMEChest extends BaseBlockRender<BlockChest, TileChest>
|
||||
|
||||
final int offsetU = -4;
|
||||
final FlippableIcon flippableIcon = new FlippableIcon( new OffsetIcon( ExtraBlockTextures.MEStorageCellTextures.getIcon(), offsetU, offsetV ) );
|
||||
|
||||
if( forward == ForgeDirection.EAST && ( up == ForgeDirection.NORTH || up == ForgeDirection.SOUTH ) )
|
||||
{
|
||||
flippableIcon.setFlip( true, false );
|
||||
@@ -118,13 +121,6 @@ public class RenderMEChest extends BaseBlockRender<BlockChest, TileChest>
|
||||
flippableIcon.setFlip( true, false );
|
||||
}
|
||||
|
||||
/*
|
||||
* 1.7.2
|
||||
* else if ( forward == ForgeDirection.EAST && up == ForgeDirection.UP ) flippableIcon.setFlip( true, false );
|
||||
* else if (
|
||||
* forward == ForgeDirection.NORTH && up == ForgeDirection.UP ) flippableIcon.setFlip( true, false );
|
||||
*/
|
||||
|
||||
this.renderFace( x, y, z, imb, flippableIcon, renderer, forward );
|
||||
|
||||
if( stat != 0 )
|
||||
|
||||
@@ -45,14 +45,19 @@ import appeng.tile.qnb.TileQuantumBridge;
|
||||
|
||||
public class RenderQNB extends BaseBlockRender<BlockQuantumBase, TileQuantumBridge>
|
||||
{
|
||||
private static final float DEFAULT_RENDER_MIN = 2.0f / 16.0f;
|
||||
private static final float DEFAULT_RENDER_MAX = 14.0f / 16.0f;
|
||||
|
||||
private static final float CORNER_POWERED_RENDER_MIN = 3.9f / 16.0f;
|
||||
private static final float CORNER_POWERED_RENDER_MAX = 12.1f / 16.0f;
|
||||
|
||||
private static final float CENTER_POWERED_RENDER_MIN = -0.01f / 16.0f;
|
||||
private static final float CENTER_POWERED_RENDER_MAX = 16.01f / 16.0f;
|
||||
|
||||
@Override
|
||||
public void renderInventory( final BlockQuantumBase block, final ItemStack item, final RenderBlocks renderer, final ItemRenderType type, final Object[] obj )
|
||||
{
|
||||
final float minPx = 2.0f / 16.0f;
|
||||
final float maxPx = 14.0f / 16.0f;
|
||||
renderer.setRenderBounds( minPx, minPx, minPx, maxPx, maxPx, maxPx );
|
||||
|
||||
renderer.setRenderBounds( DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX );
|
||||
super.renderInventory( block, item, renderer, type, obj );
|
||||
}
|
||||
|
||||
@@ -60,6 +65,7 @@ public class RenderQNB extends BaseBlockRender<BlockQuantumBase, TileQuantumBrid
|
||||
public boolean renderInWorld( final BlockQuantumBase block, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer )
|
||||
{
|
||||
final TileQuantumBridge tqb = block.getTileEntity( world, x, y, z );
|
||||
|
||||
if( tqb == null )
|
||||
{
|
||||
return false;
|
||||
@@ -86,37 +92,28 @@ public class RenderQNB extends BaseBlockRender<BlockQuantumBase, TileQuantumBrid
|
||||
this.renderCableAt( 0.188D, world, x, y, z, block, renderer, transCoveredCable.getIconIndex( parts.cableCovered().stack( AEColor.Transparent, 1 ) ), 0.1875D, sides );
|
||||
}
|
||||
|
||||
final float renderMin = 2.0f / 16.0f;
|
||||
final float renderMax = 14.0f / 16.0f;
|
||||
renderer.setRenderBounds( renderMin, renderMin, renderMin, renderMax, renderMax, renderMax );
|
||||
renderer.setRenderBounds( DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( !tqb.isFormed() )
|
||||
{
|
||||
final float renderMin = 2.0f / 16.0f;
|
||||
final float renderMax = 14.0f / 16.0f;
|
||||
renderer.setRenderBounds( renderMin, renderMin, renderMin, renderMax, renderMax, renderMax );
|
||||
renderer.setRenderBounds( DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
}
|
||||
else if( tqb.isCorner() )
|
||||
{
|
||||
final Item transCoveredCable = parts.cableCovered().item( AEColor.Transparent );
|
||||
|
||||
this.renderCableAt( 0.188D, world, x, y, z, block, renderer, transCoveredCable.getIconIndex( parts.cableCovered().stack( AEColor.Transparent, 1 ) ), 0.05D, tqb.getConnections() );
|
||||
|
||||
float renderMin = 4.0f / 16.0f;
|
||||
float renderMax = 12.0f / 16.0f;
|
||||
|
||||
renderer.setRenderBounds( renderMin, renderMin, renderMin, renderMax, renderMax, renderMax );
|
||||
renderer.setRenderBounds( DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
|
||||
if( tqb.isPowered() )
|
||||
{
|
||||
|
||||
renderMin = 3.9f / 16.0f;
|
||||
renderMax = 12.1f / 16.0f;
|
||||
renderer.setRenderBounds( renderMin, renderMin, renderMin, renderMax, renderMax, renderMax );
|
||||
renderer.setRenderBounds( CORNER_POWERED_RENDER_MIN, CORNER_POWERED_RENDER_MIN, CORNER_POWERED_RENDER_MIN, CORNER_POWERED_RENDER_MAX, CORNER_POWERED_RENDER_MAX, CORNER_POWERED_RENDER_MAX );
|
||||
|
||||
Tessellator.instance.setColorOpaque_F( 1.0F, 1.0F, 1.0F );
|
||||
final int bn = 15;
|
||||
@@ -129,22 +126,18 @@ public class RenderQNB extends BaseBlockRender<BlockQuantumBase, TileQuantumBrid
|
||||
}
|
||||
else
|
||||
{
|
||||
float renderMin = 2.0f / 16.0f;
|
||||
float renderMax = 14.0f / 16.0f;
|
||||
renderer.setRenderBounds( 0, renderMin, renderMin, 1, renderMax, renderMax );
|
||||
renderer.setRenderBounds( 0, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, 1, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
|
||||
renderer.setRenderBounds( renderMin, 0, renderMin, renderMax, 1, renderMax );
|
||||
renderer.setRenderBounds( DEFAULT_RENDER_MIN, 0, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MAX, 1, DEFAULT_RENDER_MAX );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
|
||||
renderer.setRenderBounds( renderMin, renderMin, 0, renderMax, renderMax, 1 );
|
||||
renderer.setRenderBounds( DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, 0, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX, 1 );
|
||||
renderer.renderStandardBlock( block, x, y, z );
|
||||
|
||||
if( tqb.isPowered() )
|
||||
{
|
||||
renderMin = -0.01f / 16.0f;
|
||||
renderMax = 16.01f / 16.0f;
|
||||
renderer.setRenderBounds( renderMin, renderMin, renderMin, renderMax, renderMax, renderMax );
|
||||
renderer.setRenderBounds( CENTER_POWERED_RENDER_MIN, CENTER_POWERED_RENDER_MIN, CENTER_POWERED_RENDER_MIN, CENTER_POWERED_RENDER_MAX, CENTER_POWERED_RENDER_MAX, CENTER_POWERED_RENDER_MAX );
|
||||
|
||||
Tessellator.instance.setColorOpaque_F( 1.0F, 1.0F, 1.0F );
|
||||
final int bn = 15;
|
||||
|
||||
@@ -38,23 +38,28 @@ import appeng.tile.AEBaseTile;
|
||||
public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseTile>
|
||||
{
|
||||
|
||||
private static byte[][][] offsets;
|
||||
private static final byte[][][] OFFSETS = generateOffsets();
|
||||
|
||||
public RenderQuartzGlass()
|
||||
{
|
||||
super( false, 0 );
|
||||
if( offsets == null )
|
||||
|
||||
}
|
||||
|
||||
private static byte[][][] generateOffsets()
|
||||
{
|
||||
final Random r = new Random( 924 );
|
||||
final byte[][][] offset = new byte[10][10][10];
|
||||
|
||||
for( int x = 0; x < 10; x++ )
|
||||
{
|
||||
final Random r = new Random( 924 );
|
||||
offsets = new byte[10][10][10];
|
||||
for( int x = 0; x < 10; x++ )
|
||||
for( int y = 0; y < 10; y++ )
|
||||
{
|
||||
for( int y = 0; y < 10; y++ )
|
||||
{
|
||||
r.nextBytes( offsets[x][y] );
|
||||
}
|
||||
r.nextBytes( offset[x][y] );
|
||||
}
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -75,10 +80,10 @@ public class RenderQuartzGlass extends BaseBlockRender<BlockQuartzGlass, AEBaseT
|
||||
final int cy = Math.abs( y % 10 );
|
||||
final int cz = Math.abs( z % 10 );
|
||||
|
||||
final int u = offsets[cx][cy][cz] % 4;
|
||||
final int v = offsets[9 - cx][9 - cy][9 - cz] % 4;
|
||||
final int u = OFFSETS[cx][cy][cz] % 4;
|
||||
final int v = OFFSETS[9 - cx][9 - cy][9 - cz] % 4;
|
||||
|
||||
switch( Math.abs( ( offsets[cx][cy][cz] + ( x + y + z ) ) % 4 ) )
|
||||
switch( Math.abs( ( OFFSETS[cx][cy][cz] + ( x + y + z ) ) % 4 ) )
|
||||
{
|
||||
case 0:
|
||||
renderer.overrideBlockTexture = new OffsetIcon( imb.getIcon( 0, 0 ), u / 2, v / 2 );
|
||||
|
||||
@@ -99,10 +99,12 @@ public class RenderQuartzTorch extends BaseBlockRender<AEBaseBlock, AEBaseTile>
|
||||
{
|
||||
final IOrientable te = ( (IOrientableBlock) block ).getOrientable( world, x, y, z );
|
||||
|
||||
renderer.renderAllFaces = true;
|
||||
float zOff = 0.0f;
|
||||
float yOff = 0.0f;
|
||||
float xOff = 0.0f;
|
||||
float yOff = 0.0f;
|
||||
float zOff = 0.0f;
|
||||
|
||||
renderer.renderAllFaces = true;
|
||||
|
||||
if( te != null )
|
||||
{
|
||||
final ForgeDirection forward = te.getUp();
|
||||
|
||||
@@ -66,6 +66,7 @@ public class RenderSpatialPylon extends BaseBlockRender<BlockSpatialPylon, TileS
|
||||
if( ( displayBits & TileSpatialPylon.DISPLAY_Z ) == TileSpatialPylon.DISPLAY_X )
|
||||
{
|
||||
ori = ForgeDirection.EAST;
|
||||
|
||||
if( ( displayBits & TileSpatialPylon.DISPLAY_MIDDLE ) == TileSpatialPylon.DISPLAY_END_MAX )
|
||||
{
|
||||
renderer.uvRotateEast = 1;
|
||||
|
||||
@@ -70,6 +70,7 @@ public class RendererSecurity extends BaseBlockRender<BlockSecurity, TileSecurit
|
||||
final boolean result = renderer.renderStandardBlock( imb, x, y, z );
|
||||
|
||||
int b = world.getLightBrightnessForSkyBlocks( x + up.offsetX, y + up.offsetY, z + up.offsetZ, 0 );
|
||||
|
||||
if( sp.isActive() )
|
||||
{
|
||||
b = 15 << 20 | 15 << 4;
|
||||
@@ -82,6 +83,7 @@ public class RendererSecurity extends BaseBlockRender<BlockSecurity, TileSecurit
|
||||
Tessellator.instance.setColorOpaque_I( sp.getColor().whiteVariant );
|
||||
IIcon ico = sp.isActive() ? ExtraBlockTextures.BlockMESecurityOn_Light.getIcon() : ExtraBlockTextures.MEChest.getIcon();
|
||||
this.renderFace( x, y, z, imb, ico, renderer, up );
|
||||
|
||||
if( sp.isActive() )
|
||||
{
|
||||
Tessellator.instance.setColorOpaque_I( sp.getColor().mediumVariant );
|
||||
|
||||
@@ -76,6 +76,7 @@ public class AssemblerFX extends EntityFX
|
||||
public void renderParticle( final Tessellator tess, final float l, final float rX, final float rY, final float rZ, final float rYZ, final float rXY )
|
||||
{
|
||||
this.time += l;
|
||||
|
||||
if( this.time > 4.0 )
|
||||
{
|
||||
this.time -= 4.0;
|
||||
|
||||
@@ -37,10 +37,12 @@ public class ChargedOreFX extends EntityReddustFX
|
||||
int j1 = super.getBrightnessForRender( par1 );
|
||||
j1 = Math.max( j1 >> 20, j1 >> 4 );
|
||||
j1 += 3;
|
||||
|
||||
if( j1 > 15 )
|
||||
{
|
||||
j1 = 15;
|
||||
}
|
||||
|
||||
return j1 << 20 | j1 << 4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,6 +89,7 @@ public class CraftingFx extends EntityBreakingFX
|
||||
final int blkX = MathHelper.floor_double( offX );
|
||||
final int blkY = MathHelper.floor_double( offY );
|
||||
final int blkZ = MathHelper.floor_double( offZ );
|
||||
|
||||
if( blkX == this.startBlkX && blkY == this.startBlkY && blkZ == this.startBlkZ )
|
||||
{
|
||||
offX -= interpPosX;
|
||||
|
||||
@@ -51,8 +51,8 @@ public class LightningArcFX extends LightningFX
|
||||
final double lastDirectionX = this.rx * i;
|
||||
final double lastDirectionY = this.ry * i;
|
||||
final double lastDirectionZ = this.rz * i;
|
||||
|
||||
final double len = Math.sqrt( lastDirectionX * lastDirectionX + lastDirectionY * lastDirectionY + lastDirectionZ * lastDirectionZ );
|
||||
|
||||
for( int s = 0; s < this.getSteps(); s++ )
|
||||
{
|
||||
final double[][] localSteps = this.getPrecomputedSteps();
|
||||
|
||||
@@ -31,7 +31,6 @@ import net.minecraft.world.World;
|
||||
|
||||
public class LightningFX extends EntityFX
|
||||
{
|
||||
|
||||
private static final Random RANDOM_GENERATOR = new Random();
|
||||
private static final int STEPS = 5;
|
||||
|
||||
@@ -62,6 +61,7 @@ public class LightningFX extends EntityFX
|
||||
double lastDirectionX = ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9;
|
||||
double lastDirectionY = ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9;
|
||||
double lastDirectionZ = ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9;
|
||||
|
||||
for( int s = 0; s < LightningFX.STEPS; s++ )
|
||||
{
|
||||
this.precomputedSteps[s][0] = lastDirectionX = ( lastDirectionX + ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9 ) / 2.0;
|
||||
@@ -86,7 +86,9 @@ public class LightningFX extends EntityFX
|
||||
public void renderParticle( final Tessellator tess, final float l, final float rX, final float rY, final float rZ, final float rYZ, final float rXY )
|
||||
{
|
||||
final float j = 1.0f;
|
||||
|
||||
tess.setColorRGBA_F( this.particleRed * j * 0.9f, this.particleGreen * j * 0.95f, this.particleBlue * j, this.particleAlpha );
|
||||
|
||||
if( this.particleAge == 3 )
|
||||
{
|
||||
this.regen();
|
||||
@@ -190,10 +192,6 @@ public class LightningFX extends EntityFX
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); GL11.glDisable( GL11.GL_CULL_FACE ); tess.draw();
|
||||
* GL11.glPopAttrib(); tess.startDrawingQuads();
|
||||
*/
|
||||
}
|
||||
|
||||
private void clear()
|
||||
@@ -210,7 +208,9 @@ public class LightningFX extends EntityFX
|
||||
tess.addVertexWithUV( this.verticesWithUV[0], this.verticesWithUV[1], this.verticesWithUV[2], f6, f8 );
|
||||
tess.addVertexWithUV( b[0], b[1], b[2], f6, f8 );
|
||||
}
|
||||
|
||||
this.hasData = true;
|
||||
|
||||
for( int x = 0; x < 3; x++ )
|
||||
{
|
||||
this.vertices[x] = a[x];
|
||||
|
||||
@@ -45,6 +45,7 @@ public class ItemEncodedPatternRenderer implements IItemRenderer
|
||||
if( !this.recursive && type == IItemRenderer.ItemRenderType.INVENTORY && isShiftHeld )
|
||||
{
|
||||
final ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem();
|
||||
|
||||
if( iep.getOutput( item ) != null )
|
||||
{
|
||||
return true;
|
||||
@@ -66,11 +67,10 @@ public class ItemEncodedPatternRenderer implements IItemRenderer
|
||||
this.recursive = true;
|
||||
|
||||
final ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem();
|
||||
|
||||
final ItemStack is = iep.getOutput( item );
|
||||
final Minecraft mc = Minecraft.getMinecraft();
|
||||
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT );
|
||||
RenderHelper.enableGUIStandardItemLighting();
|
||||
this.ri.renderItemAndEffectIntoGUI( mc.fontRenderer, mc.getTextureManager(), is, 0, 0 );
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
|
||||
@@ -50,8 +50,13 @@ public class PaintBallRender implements IItemRenderer
|
||||
@Override
|
||||
public void renderItem( final ItemRenderType type, final ItemStack item, final Object... data )
|
||||
{
|
||||
IIcon par2Icon = item.getIconIndex();
|
||||
if( item.getItemDamage() >= 20 )
|
||||
final IIcon par2Icon;
|
||||
|
||||
if( item.getItemDamage() < 20 )
|
||||
{
|
||||
par2Icon = item.getIconIndex();
|
||||
}
|
||||
else
|
||||
{
|
||||
par2Icon = ExtraItemTextures.ItemPaintBallShimmer.getIcon();
|
||||
}
|
||||
@@ -64,8 +69,8 @@ public class PaintBallRender implements IItemRenderer
|
||||
final ItemPaintBall ipb = (ItemPaintBall) item.getItem();
|
||||
|
||||
final Tessellator tessellator = Tessellator.instance;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
|
||||
final AEColor col = ipb.getColor( item );
|
||||
|
||||
@@ -122,7 +127,15 @@ public class PaintBallRender implements IItemRenderer
|
||||
|
||||
GL11.glColor4f( 1, 1, 1, 1.0F );
|
||||
|
||||
GL11.glPopAttrib();
|
||||
if( type == ItemRenderType.INVENTORY )
|
||||
{
|
||||
GL11.glDisable( GL11.GL_ALPHA_TEST );
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glEnable( GL11.GL_CULL_FACE );
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,8 +60,9 @@ public class ToolBiometricCardRender implements IItemRenderer
|
||||
final float f7 = par2Icon.getMaxV();
|
||||
|
||||
final Tessellator tessellator = Tessellator.instance;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT );
|
||||
|
||||
if( type == ItemRenderType.INVENTORY )
|
||||
{
|
||||
@@ -96,6 +97,7 @@ public class ToolBiometricCardRender implements IItemRenderer
|
||||
final float v = ExtraItemTextures.White.getIcon().getInterpolatedV( 8.1 );
|
||||
|
||||
String username = "";
|
||||
|
||||
if( item.getItem() instanceof IBiometricCard )
|
||||
{
|
||||
final GameProfile gp = ( (IBiometricCard) item.getItem() ).getProfile( item );
|
||||
@@ -119,6 +121,7 @@ public class ToolBiometricCardRender implements IItemRenderer
|
||||
}
|
||||
|
||||
final float z = 0;
|
||||
|
||||
for( int x = 0; x < 8; x++ )// 8
|
||||
{
|
||||
for( int y = 0; y < 6; y++ )// 6
|
||||
@@ -150,6 +153,7 @@ public class ToolBiometricCardRender implements IItemRenderer
|
||||
tessellator.addVertexWithUV( x, y + 1, z, u, v );
|
||||
}
|
||||
}
|
||||
|
||||
tessellator.draw();
|
||||
|
||||
GL11.glPopAttrib();
|
||||
|
||||
@@ -58,8 +58,9 @@ public class ToolColorApplicatorRender implements IItemRenderer
|
||||
float f7 = par2Icon.getMaxV();
|
||||
|
||||
final Tessellator tessellator = Tessellator.instance;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||
GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT );
|
||||
|
||||
if( type == ItemRenderType.INVENTORY )
|
||||
{
|
||||
@@ -106,10 +107,12 @@ public class ToolColorApplicatorRender implements IItemRenderer
|
||||
final IIcon light = ExtraItemTextures.ToolColorApplicatorTip_Light.getIcon();
|
||||
|
||||
GL11.glScalef( 1F / 16F, 1F / 16F, 1F );
|
||||
|
||||
if( type != ItemRenderType.INVENTORY )
|
||||
{
|
||||
GL11.glTranslatef( 2, 0, 0 );
|
||||
}
|
||||
|
||||
GL11.glDisable( GL11.GL_LIGHTING );
|
||||
|
||||
final AEColor col = ( (ToolColorApplicator) item.getItem() ).getActiveColor( item );
|
||||
|
||||
@@ -24,7 +24,10 @@ import java.util.EnumSet;
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.api.exceptions.ExistingConnectionException;
|
||||
import appeng.api.exceptions.FailedConnection;
|
||||
import appeng.api.exceptions.NullNodeConnectionException;
|
||||
import appeng.api.exceptions.SecurityConnectionException;
|
||||
import appeng.api.networking.GridFlags;
|
||||
import appeng.api.networking.IGridConnection;
|
||||
import appeng.api.networking.IGridNode;
|
||||
@@ -43,6 +46,8 @@ import appeng.util.ReadOnlyCollection;
|
||||
public class GridConnection implements IGridConnection, IPathItem
|
||||
{
|
||||
|
||||
private static final String EXISTING_CONNECTION_MESSAGE = "Connection between node [machine=%s, %s] and [machine=%s, %s] on [%s] already exists.";
|
||||
|
||||
private static final MENetworkChannelsChanged EVENT = new MENetworkChannelsChanged();
|
||||
private int channelData = 0;
|
||||
private Object visitorIterationNumber = null;
|
||||
@@ -67,21 +72,24 @@ public class GridConnection implements IGridConnection, IPathItem
|
||||
AELog.info( "Security audit 2 failed at [%s] belonging to player [id=%d]", bCoordinates.toString(), b.getPlayerID() );
|
||||
}
|
||||
|
||||
throw new FailedConnection();
|
||||
throw new SecurityConnectionException();
|
||||
}
|
||||
|
||||
if( a == null || b == null )
|
||||
{
|
||||
throw new GridException( "Connection Forged Between null entities." );
|
||||
throw new NullNodeConnectionException();
|
||||
}
|
||||
|
||||
if( a.hasConnection( b ) || b.hasConnection( a ) )
|
||||
{
|
||||
final String aCoords = a.getGridBlock().getLocation().toString();
|
||||
final String bCoords = b.getGridBlock().getLocation().toString();
|
||||
final String aMachineClass = a.getGridBlock().getMachine().getClass().getSimpleName();
|
||||
final String bMachineClass = b.getGridBlock().getMachine().getClass().getSimpleName();
|
||||
final String aCoordinates = a.getGridBlock().getLocation().toString();
|
||||
final String bCoordinates = b.getGridBlock().getLocation().toString();
|
||||
|
||||
throw new GridException( String.format( "Connection already exists between node at [%s] and node at [%s].", aCoords, bCoords ) );
|
||||
throw new ExistingConnectionException( String.format( EXISTING_CONNECTION_MESSAGE, aMachineClass, aCoordinates, bMachineClass, bCoordinates, fromAtoB ) );
|
||||
}
|
||||
|
||||
this.sideA = a;
|
||||
this.fromAtoB = fromAtoB;
|
||||
this.sideB = b;
|
||||
|
||||
+2
-2
@@ -239,8 +239,8 @@ public class GridStorageCache implements IStorageGrid
|
||||
}
|
||||
}
|
||||
|
||||
this.itemMonitor.forceUpdate();
|
||||
this.fluidMonitor.forceUpdate();
|
||||
this.itemMonitor.forceUpdate( false );
|
||||
this.fluidMonitor.forceUpdate( false );
|
||||
|
||||
tracker.applyChanges();
|
||||
}
|
||||
|
||||
+286
-79
@@ -21,41 +21,321 @@ package appeng.me.cache;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Deque;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.networking.events.MENetworkStorageEvent;
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
import appeng.api.storage.IMEInventoryHandler;
|
||||
import appeng.api.storage.IMEMonitor;
|
||||
import appeng.api.storage.IMEMonitorHandlerReceiver;
|
||||
import appeng.api.storage.MEMonitorHandler;
|
||||
import appeng.api.storage.StorageChannel;
|
||||
import appeng.api.storage.data.IAEStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
import appeng.me.storage.ItemWatcher;
|
||||
|
||||
|
||||
public class NetworkMonitor<T extends IAEStack<T>> extends MEMonitorHandler<T>
|
||||
public class NetworkMonitor<T extends IAEStack<T>> implements IMEMonitor<T>
|
||||
{
|
||||
@Nonnull
|
||||
private static final Deque<NetworkMonitor<?>> GLOBAL_DEPTH = new LinkedList<NetworkMonitor<?>>();
|
||||
|
||||
private static final Deque<NetworkMonitor<?>> DEPTH = new LinkedList<NetworkMonitor<?>>();
|
||||
@Nonnull
|
||||
private final GridStorageCache myGridCache;
|
||||
@Nonnull
|
||||
private final StorageChannel myChannel;
|
||||
@Nonnull
|
||||
private final IItemList<T> cachedList;
|
||||
@Nonnull
|
||||
private final Map<IMEMonitorHandlerReceiver<T>, Object> listeners = new HashMap<IMEMonitorHandlerReceiver<T>, Object>();
|
||||
|
||||
private boolean sendEvent = false;
|
||||
private boolean hasChanged = false;
|
||||
private int localDepthSemaphore = 0;
|
||||
|
||||
public NetworkMonitor( final GridStorageCache cache, final StorageChannel chan )
|
||||
{
|
||||
super( null, chan );
|
||||
this.myGridCache = cache;
|
||||
this.myChannel = chan;
|
||||
this.cachedList = (IItemList<T>) chan.createList();
|
||||
}
|
||||
|
||||
void forceUpdate()
|
||||
@Override
|
||||
public void addListener( final IMEMonitorHandlerReceiver<T> l, final Object verificationToken )
|
||||
{
|
||||
this.hasChanged = true;
|
||||
this.listeners.put( l, verificationToken );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAccept( final T input )
|
||||
{
|
||||
return this.getHandler().canAccept( input );
|
||||
}
|
||||
|
||||
@Override
|
||||
public T extractItems( final T request, final Actionable mode, final BaseActionSource src )
|
||||
{
|
||||
if( mode == Actionable.SIMULATE )
|
||||
{
|
||||
return this.getHandler().extractItems( request, mode, src );
|
||||
}
|
||||
|
||||
localDepthSemaphore++;
|
||||
final T leftover = this.getHandler().extractItems( request, mode, src );
|
||||
localDepthSemaphore--;
|
||||
|
||||
if( localDepthSemaphore == 0 )
|
||||
{
|
||||
this.monitorDifference( request.copy(), leftover, true, src );
|
||||
}
|
||||
|
||||
return leftover;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getAccess()
|
||||
{
|
||||
return this.getHandler().getAccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemList<T> getAvailableItems( final IItemList out )
|
||||
{
|
||||
return this.getHandler().getAvailableItems( out );
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageChannel getChannel()
|
||||
{
|
||||
return this.getHandler().getChannel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority()
|
||||
{
|
||||
return this.getHandler().getPriority();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlot()
|
||||
{
|
||||
return this.getHandler().getSlot();
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public IItemList<T> getStorageList()
|
||||
{
|
||||
if( this.hasChanged )
|
||||
{
|
||||
this.hasChanged = false;
|
||||
this.cachedList.resetStatus();
|
||||
return this.getAvailableItems( this.cachedList );
|
||||
}
|
||||
|
||||
return this.cachedList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T injectItems( final T input, final Actionable mode, final BaseActionSource src )
|
||||
{
|
||||
if( mode == Actionable.SIMULATE )
|
||||
{
|
||||
return this.getHandler().injectItems( input, mode, src );
|
||||
}
|
||||
|
||||
localDepthSemaphore++;
|
||||
final T leftover = this.getHandler().injectItems( input, mode, src );
|
||||
localDepthSemaphore--;
|
||||
|
||||
if( localDepthSemaphore == 0 )
|
||||
{
|
||||
this.monitorDifference( input.copy(), leftover, false, src );
|
||||
}
|
||||
|
||||
return leftover;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPrioritized( final T input )
|
||||
{
|
||||
return this.getHandler().isPrioritized( input );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener( final IMEMonitorHandlerReceiver<T> l )
|
||||
{
|
||||
this.listeners.remove( l );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validForPass( final int i )
|
||||
{
|
||||
return this.getHandler().validForPass( i );
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@SuppressWarnings( "unchecked" )
|
||||
private IMEInventoryHandler<T> getHandler()
|
||||
{
|
||||
switch( this.myChannel )
|
||||
{
|
||||
case ITEMS:
|
||||
return (IMEInventoryHandler<T>) this.myGridCache.getItemInventoryHandler();
|
||||
case FLUIDS:
|
||||
return (IMEInventoryHandler<T>) this.myGridCache.getFluidInventoryHandler();
|
||||
default:
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> getListeners()
|
||||
{
|
||||
return this.listeners.entrySet().iterator();
|
||||
}
|
||||
|
||||
private T monitorDifference( final IAEStack original, final T leftOvers, final boolean extraction, final BaseActionSource src )
|
||||
{
|
||||
final T diff = (T) original.copy();
|
||||
|
||||
if( extraction )
|
||||
{
|
||||
diff.setStackSize( leftOvers == null ? 0 : -leftOvers.getStackSize() );
|
||||
}
|
||||
else if( leftOvers != null )
|
||||
{
|
||||
diff.decStackSize( leftOvers.getStackSize() );
|
||||
}
|
||||
|
||||
if( diff.getStackSize() != 0 )
|
||||
{
|
||||
this.postChangesToListeners( ImmutableList.of( diff ), src );
|
||||
}
|
||||
|
||||
return leftOvers;
|
||||
}
|
||||
|
||||
private void notifyListenersOfChange( final Iterable<T> diff, final BaseActionSource src )
|
||||
{
|
||||
final Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> i = this.getListeners();
|
||||
|
||||
while( i.hasNext() )
|
||||
{
|
||||
final Entry<IMEMonitorHandlerReceiver<T>, Object> o = i.next();
|
||||
final IMEMonitorHandlerReceiver<T> receiver = o.getKey();
|
||||
if( receiver.isValid( o.getValue() ) )
|
||||
{
|
||||
receiver.postChange( this, diff, src );
|
||||
}
|
||||
else
|
||||
{
|
||||
i.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void postChangesToListeners( final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
this.postChange( true, changes, src );
|
||||
}
|
||||
|
||||
private void updateCache( Iterable<T> changes, boolean add )
|
||||
{
|
||||
for( final T changedItem : changes )
|
||||
{
|
||||
T difference = changedItem;
|
||||
|
||||
if( !add && changedItem != null )
|
||||
{
|
||||
difference = changedItem.copy();
|
||||
difference.setStackSize( -changedItem.getStackSize() );
|
||||
}
|
||||
|
||||
this.cachedList.add( difference );
|
||||
}
|
||||
}
|
||||
|
||||
protected void postChange( final boolean add, final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
if( localDepthSemaphore > 0 || GLOBAL_DEPTH.contains( this ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
GLOBAL_DEPTH.push( this );
|
||||
localDepthSemaphore++;
|
||||
|
||||
this.sendEvent = true;
|
||||
|
||||
this.updateCache( changes, add );
|
||||
this.notifyListenersOfChange( changes, src );
|
||||
|
||||
for( final T changedItem : changes )
|
||||
{
|
||||
T difference = changedItem;
|
||||
|
||||
if( !add && changedItem != null )
|
||||
{
|
||||
difference = changedItem.copy();
|
||||
difference.setStackSize( -changedItem.getStackSize() );
|
||||
}
|
||||
|
||||
if( this.myGridCache.getInterestManager().containsKey( changedItem ) )
|
||||
{
|
||||
final Collection<ItemWatcher> list = this.myGridCache.getInterestManager().get( changedItem );
|
||||
|
||||
if( !list.isEmpty() )
|
||||
{
|
||||
IAEStack fullStack = this.getStorageList().findPrecise( changedItem );
|
||||
|
||||
if( fullStack == null )
|
||||
{
|
||||
fullStack = changedItem.copy();
|
||||
fullStack.setStackSize( 0 );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().enableTransactions();
|
||||
|
||||
for( final ItemWatcher iw : list )
|
||||
{
|
||||
iw.getHost().onStackChange( this.getStorageList(), fullStack, difference, src, this.getChannel() );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().disableTransactions();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final NetworkMonitor<?> last = GLOBAL_DEPTH.pop();
|
||||
localDepthSemaphore--;
|
||||
|
||||
if( last != this )
|
||||
{
|
||||
throw new IllegalStateException( "Invalid Access to Networked Storage API detected." );
|
||||
}
|
||||
}
|
||||
|
||||
void forceUpdate( boolean reset )
|
||||
{
|
||||
if( reset )
|
||||
{
|
||||
this.hasChanged = true;
|
||||
this.cachedList.resetStatus();
|
||||
this.getAvailableItems( this.cachedList );
|
||||
}
|
||||
|
||||
final Iterator<Entry<IMEMonitorHandlerReceiver<T>, Object>> i = this.getListeners();
|
||||
|
||||
while( i.hasNext() )
|
||||
{
|
||||
final Entry<IMEMonitorHandlerReceiver<T>, Object> o = i.next();
|
||||
@@ -81,77 +361,4 @@ public class NetworkMonitor<T extends IAEStack<T>> extends MEMonitorHandler<T>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IMEInventoryHandler getHandler()
|
||||
{
|
||||
switch( this.myChannel )
|
||||
{
|
||||
case ITEMS:
|
||||
return this.myGridCache.getItemInventoryHandler();
|
||||
case FLUIDS:
|
||||
return this.myGridCache.getFluidInventoryHandler();
|
||||
default:
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void postChangesToListeners( final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
this.postChange( true, changes, src );
|
||||
}
|
||||
|
||||
protected void postChange( final boolean add, final Iterable<T> changes, final BaseActionSource src )
|
||||
{
|
||||
if( DEPTH.contains( this ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
DEPTH.push( this );
|
||||
|
||||
this.sendEvent = true;
|
||||
this.notifyListenersOfChange( changes, src );
|
||||
|
||||
final IItemList<T> myStorageList = this.getStorageList();
|
||||
|
||||
for( final T changedItem : changes )
|
||||
{
|
||||
T difference = changedItem;
|
||||
|
||||
if( !add && changedItem != null )
|
||||
{
|
||||
( difference = changedItem.copy() ).setStackSize( -changedItem.getStackSize() );
|
||||
}
|
||||
|
||||
if( this.myGridCache.getInterestManager().containsKey( changedItem ) )
|
||||
{
|
||||
final Collection<ItemWatcher> list = this.myGridCache.getInterestManager().get( changedItem );
|
||||
if( !list.isEmpty() )
|
||||
{
|
||||
IAEStack fullStack = myStorageList.findPrecise( changedItem );
|
||||
if( fullStack == null )
|
||||
{
|
||||
fullStack = changedItem.copy();
|
||||
fullStack.setStackSize( 0 );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().enableTransactions();
|
||||
|
||||
for( final ItemWatcher iw : list )
|
||||
{
|
||||
iw.getHost().onStackChange( myStorageList, fullStack, difference, src, this.getChannel() );
|
||||
}
|
||||
|
||||
this.myGridCache.getInterestManager().disableTransactions();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final NetworkMonitor<?> last = DEPTH.pop();
|
||||
if( last != this )
|
||||
{
|
||||
throw new IllegalStateException( "Invalid Access to Networked Storage API detected." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.config.FuzzyMode;
|
||||
import appeng.api.exceptions.AppEngException;
|
||||
@@ -43,7 +44,6 @@ import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
import appeng.util.Platform;
|
||||
import appeng.util.item.AEItemStack;
|
||||
import appeng.util.item.UnsortedItemList;
|
||||
|
||||
|
||||
public class CellInventory implements ICellInventory
|
||||
@@ -191,7 +191,7 @@ public class CellInventory implements ICellInventory
|
||||
|
||||
private boolean isEmpty( final IMEInventory<IAEItemStack> meInventory )
|
||||
{
|
||||
return meInventory.getAvailableItems( new UnsortedItemList() ).isEmpty();
|
||||
return meInventory.getAvailableItems( AEApi.instance().storage().createItemList() ).isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -446,7 +446,7 @@ public class CellInventory implements ICellInventory
|
||||
{
|
||||
if( this.cellItems == null )
|
||||
{
|
||||
this.cellItems = new UnsortedItemList();
|
||||
this.cellItems = AEApi.instance().storage().createItemList();
|
||||
}
|
||||
|
||||
this.cellItems.resetStatus(); // clears totals and stuff.
|
||||
|
||||
@@ -378,10 +378,11 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC
|
||||
|
||||
final IMEInventory<IAEItemStack> out = this.getInternalHandler();
|
||||
|
||||
if( this.monitor != null )
|
||||
{
|
||||
this.monitor.onTick();
|
||||
}
|
||||
// TODO: evaluate, if this is really (not) necessary.
|
||||
// if( this.monitor != null )
|
||||
// {
|
||||
// this.monitor.onTick();
|
||||
// }
|
||||
|
||||
IItemList<IAEItemStack> after = AEApi.instance().storage().createItemList();
|
||||
if( out != null )
|
||||
|
||||
@@ -21,14 +21,11 @@ package appeng.util.item;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Map;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.concurrent.ConcurrentSkipListMap;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import appeng.api.config.FuzzyMode;
|
||||
@@ -39,7 +36,7 @@ import appeng.api.storage.data.IItemList;
|
||||
public final class ItemList implements IItemList<IAEItemStack>
|
||||
{
|
||||
|
||||
private final Map<Item, NavigableMap<IAEItemStack, IAEItemStack>> records = new IdentityHashMap<Item, NavigableMap<IAEItemStack, IAEItemStack>>();
|
||||
private final NavigableMap<IAEItemStack, IAEItemStack> records = new ConcurrentSkipListMap<IAEItemStack, IAEItemStack>();
|
||||
|
||||
@Override
|
||||
public void add( final IAEItemStack option )
|
||||
@@ -49,7 +46,7 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
return;
|
||||
}
|
||||
|
||||
final IAEItemStack st = this.getItemRecord( option.getItem() ).get( option );
|
||||
final IAEItemStack st = this.records.get( option );
|
||||
|
||||
if( st != null )
|
||||
{
|
||||
@@ -70,7 +67,7 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.getItemRecord( itemStack.getItem() ).get( itemStack );
|
||||
return this.records.get( itemStack );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -123,7 +120,7 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
return;
|
||||
}
|
||||
|
||||
final IAEItemStack st = this.getItemRecord( option.getItem() ).get( option );
|
||||
final IAEItemStack st = this.records.get( option );
|
||||
|
||||
if( st != null )
|
||||
{
|
||||
@@ -149,7 +146,7 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
return;
|
||||
}
|
||||
|
||||
final IAEItemStack st = this.getItemRecord( option.getItem() ).get( option );
|
||||
final IAEItemStack st = this.records.get( option );
|
||||
|
||||
if( st != null )
|
||||
{
|
||||
@@ -172,7 +169,7 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
return;
|
||||
}
|
||||
|
||||
final IAEItemStack st = this.getItemRecord( option.getItem() ).get( option );
|
||||
final IAEItemStack st = this.records.get( option );
|
||||
|
||||
if( st != null )
|
||||
{
|
||||
@@ -202,14 +199,7 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
@Override
|
||||
public int size()
|
||||
{
|
||||
int size = 0;
|
||||
|
||||
for( final Map<IAEItemStack, IAEItemStack> element : this.records.values() )
|
||||
{
|
||||
size += element.size();
|
||||
}
|
||||
|
||||
return size;
|
||||
return this.records.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -227,22 +217,9 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
}
|
||||
}
|
||||
|
||||
private NavigableMap<IAEItemStack, IAEItemStack> getItemRecord( final Item item )
|
||||
{
|
||||
NavigableMap<IAEItemStack, IAEItemStack> itemRecords = this.records.get( item );
|
||||
|
||||
if( itemRecords == null )
|
||||
{
|
||||
itemRecords = new ConcurrentSkipListMap<IAEItemStack, IAEItemStack>();
|
||||
this.records.put( item, itemRecords );
|
||||
}
|
||||
|
||||
return itemRecords;
|
||||
}
|
||||
|
||||
private IAEItemStack putItemRecord( final IAEItemStack itemStack )
|
||||
{
|
||||
return this.getItemRecord( itemStack.getItem() ).put( itemStack, itemStack );
|
||||
return this.records.put( itemStack, itemStack );
|
||||
}
|
||||
|
||||
private Collection<IAEItemStack> findFuzzyDamage( final AEItemStack filter, final FuzzyMode fuzzy, final boolean ignoreMeta )
|
||||
@@ -250,6 +227,6 @@ public final class ItemList implements IItemList<IAEItemStack>
|
||||
final IAEItemStack low = filter.getLow( fuzzy, ignoreMeta );
|
||||
final IAEItemStack high = filter.getHigh( fuzzy, ignoreMeta );
|
||||
|
||||
return this.getItemRecord( filter.getItem() ).subMap( low, true, high, true ).descendingMap().values();
|
||||
return this.records.subMap( low, true, high, true ).descendingMap().values();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ package appeng.util.item;
|
||||
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
@@ -29,47 +28,28 @@ import appeng.api.storage.data.IAEItemStack;
|
||||
public class MeaningfulItemIterator<T extends IAEItemStack> implements Iterator<T>
|
||||
{
|
||||
|
||||
private final Iterator<NavigableMap<T, T>> parent;
|
||||
private Iterator<T> innerIterater = null;
|
||||
private final Iterator<T> parent;
|
||||
private T next;
|
||||
|
||||
public MeaningfulItemIterator( final Iterator<NavigableMap<T, T>> iterator )
|
||||
public MeaningfulItemIterator( final Iterator<T> iterator )
|
||||
{
|
||||
this.parent = iterator;
|
||||
|
||||
if( this.parent.hasNext() )
|
||||
{
|
||||
this.innerIterater = this.parent.next().values().iterator();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext()
|
||||
{
|
||||
if( this.innerIterater == null )
|
||||
while( this.parent.hasNext() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
this.next = this.parent.next();
|
||||
|
||||
while( this.innerIterater.hasNext() || this.parent.hasNext() )
|
||||
{
|
||||
if( this.innerIterater.hasNext() )
|
||||
if( this.next.isMeaningful() )
|
||||
{
|
||||
this.next = this.innerIterater.next();
|
||||
|
||||
if( this.next.isMeaningful() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.innerIterater.remove(); // self cleaning :3
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if( this.parent.hasNext() )
|
||||
else
|
||||
{
|
||||
this.innerIterater = this.parent.next().values().iterator();
|
||||
this.parent.remove(); // self cleaning :3
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
/*
|
||||
* This file is part of Applied Energistics 2.
|
||||
* Copyright (c) 2013 - 2015, 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.util.item;
|
||||
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Iterators;
|
||||
|
||||
import appeng.api.config.FuzzyMode;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
|
||||
|
||||
/**
|
||||
* An unsorted {@link IItemList} providing constant access time instead of logarithmic time.
|
||||
*
|
||||
* As tradeoff it will no longer support fuzzy operations.
|
||||
* Also no advanced features like storing craftable or requestable items is supported.
|
||||
*
|
||||
*/
|
||||
public final class UnsortedItemList implements IItemList<IAEItemStack>
|
||||
{
|
||||
|
||||
/**
|
||||
* {@link Predicate} to filter all meaningful entries with {@link Iterators}
|
||||
*/
|
||||
private static final Predicate<IAEItemStack> MEANINGFUL_PREDICATE = new Predicate<IAEItemStack>()
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean apply( @Nonnull final IAEItemStack input )
|
||||
{
|
||||
return input.isMeaningful();
|
||||
}
|
||||
};
|
||||
|
||||
private final Map<IAEItemStack, IAEItemStack> records = new HashMap<IAEItemStack, IAEItemStack>();
|
||||
|
||||
@Override
|
||||
public void add( final IAEItemStack option )
|
||||
{
|
||||
if( option == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final IAEItemStack st = this.records.get( option );
|
||||
|
||||
if( st != null )
|
||||
{
|
||||
st.add( option );
|
||||
return;
|
||||
}
|
||||
|
||||
final IAEItemStack opt = option.copy();
|
||||
|
||||
this.records.put( opt, opt );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack findPrecise( final IAEItemStack itemStack )
|
||||
{
|
||||
if( itemStack == null )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.records.get( itemStack );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty()
|
||||
{
|
||||
return !this.iterator().hasNext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size()
|
||||
{
|
||||
return this.records.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<IAEItemStack> iterator()
|
||||
{
|
||||
return Iterators.filter( this.records.values().iterator(), MEANINGFUL_PREDICATE );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack getFirstItem()
|
||||
{
|
||||
for( final IAEItemStack stackType : this )
|
||||
{
|
||||
return stackType;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetStatus()
|
||||
{
|
||||
for( final IAEItemStack i : this )
|
||||
{
|
||||
i.reset();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsupported due to being a unsorted collection and thus only solvable in linear or worse time.
|
||||
*
|
||||
* @deprecated to indicate this method is unsupported.
|
||||
*/
|
||||
@Override
|
||||
@Deprecated
|
||||
public Collection<IAEItemStack> findFuzzy( final IAEItemStack filter, final FuzzyMode fuzzy )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Unsupported on an unsorted collection" );
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsupported to avoid being used as anything but a plain collection to store real item stacks.
|
||||
*
|
||||
* @deprecated to indicate this method is unsupported.
|
||||
*/
|
||||
@Override
|
||||
@Deprecated
|
||||
public void addStorage( final IAEItemStack option )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Purely designed for item storage" );
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsupported to avoid being used as anything but a plain collection to store real item stacks.
|
||||
*
|
||||
* @deprecated to indicate this method is unsupported.
|
||||
*/
|
||||
@Override
|
||||
@Deprecated
|
||||
public void addCrafting( final IAEItemStack option )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Purely designed for item storage" );
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsupported to avoid being used as anything but a plain collection to store real item stacks.
|
||||
*
|
||||
* @deprecated to indicate this method is unsupported.
|
||||
*/
|
||||
@Override
|
||||
@Deprecated
|
||||
public void addRequestable( final IAEItemStack option )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Purely designed for item storage" );
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
// Blocks
|
||||
tile.appliedenergistics2.BlockCableBus.name=AE2 Kábel és/vagy Busz
|
||||
tile.appliedenergistics2.BlockCellWorkbench.name=Cella Munkaasztal
|
||||
tile.appliedenergistics2.BlockCharger.name=Feltöltő
|
||||
tile.appliedenergistics2.BlockCharger.name=Töltő
|
||||
tile.appliedenergistics2.BlockChest.name=ME Láda
|
||||
tile.appliedenergistics2.BlockCondenser.name=Matter Condenser
|
||||
tile.appliedenergistics2.BlockCondenser.name=Anyag Sűrítő
|
||||
tile.appliedenergistics2.BlockController.name=ME Vezérlő
|
||||
tile.appliedenergistics2.BlockCrank.name=Fa Kurbli
|
||||
tile.appliedenergistics2.BlockCreativeEnergyCell.name=Kreatív Energia Cella
|
||||
@@ -10,11 +11,11 @@ tile.appliedenergistics2.BlockDenseEnergyCell.name=Sűrű Energia Cella
|
||||
tile.appliedenergistics2.BlockEnergyCell.name=Energia Cella
|
||||
tile.appliedenergistics2.BlockDrive.name=ME Meghajtó
|
||||
tile.appliedenergistics2.BlockEnergyAcceptor.name=Energia Befogadó
|
||||
tile.appliedenergistics2.BlockGrinder.name=Kvarc Csiszoló
|
||||
tile.appliedenergistics2.BlockGrinder.name=Kvarc Daráló
|
||||
tile.appliedenergistics2.BlockMatrixFrame.name=Mátrix Keret
|
||||
tile.appliedenergistics2.BlockIOPort.name=ME IO Port
|
||||
tile.appliedenergistics2.BlockIOPort.name=ME Be/Ki Port
|
||||
tile.appliedenergistics2.BlockInscriber.name=Karcoló
|
||||
tile.appliedenergistics2.BlockInterface.name=ME Csatlakozási Felület
|
||||
tile.appliedenergistics2.BlockInterface.name=ME Interfész
|
||||
tile.appliedenergistics2.BlockQuantumLinkChamber.name=ME Kvantum Összekötő Kamra
|
||||
tile.appliedenergistics2.BlockQuantumRing.name=ME Kvantum Gyűrű
|
||||
tile.appliedenergistics2.BlockFluix.name=Fluix Blokk
|
||||
@@ -23,286 +24,360 @@ tile.appliedenergistics2.BlockQuartzChiseled.name=Finom Certus Kvarc Blokk
|
||||
tile.appliedenergistics2.BlockQuartzGlass.name=Kvarc Üveg
|
||||
tile.appliedenergistics2.BlockQuartzLamp.name=Vibráló Kvarc Üveg
|
||||
tile.appliedenergistics2.BlockQuartzPillar.name=Certus Kvarc Oszlop
|
||||
tile.appliedenergistics2.BlockQuartzTorch.name=Feltöltött Kvarc Fáklya
|
||||
tile.appliedenergistics2.BlockLightDetector.name=Fény Detector Fixture
|
||||
tile.appliedenergistics2.BlockSpatialIOPort.name=Spatial IO Port
|
||||
tile.appliedenergistics2.BlockSpatialPylon.name=Spatial Pylon
|
||||
tile.appliedenergistics2.BlockQuartzTorch.name=Töltött Kvarc Test
|
||||
tile.appliedenergistics2.BlockLightDetector.name=Fény Észlelő test
|
||||
tile.appliedenergistics2.BlockSpatialIOPort.name=Tér-IO Port
|
||||
tile.appliedenergistics2.BlockSpatialPylon.name=Tér-Pylon
|
||||
tile.appliedenergistics2.BlockTinyTNT.name=Pici TNT
|
||||
tile.appliedenergistics2.BlockVibrationChamber.name=Vibrációs Kamra
|
||||
tile.appliedenergistics2.BlockWireless.name=ME Wireless Hozzáférési Pont
|
||||
tile.appliedenergistics2.BlockWireless.name=ME Vezetéknélküli Hozzáférési Pont
|
||||
tile.appliedenergistics2.OreQuartz.name=Certus Kvarc Érc
|
||||
tile.appliedenergistics2.OreQuartzCharged.name=Feltöltött Certus Kvarc Érc
|
||||
tile.appliedenergistics2.OreQuartzCharged.name=Töltött Certus Kvarc Érc
|
||||
tile.appliedenergistics2.BlockSecurity.name=ME Bizonsági Terminál
|
||||
tile.appliedenergistics2.BlockQuartzGrowthAccelerator.name=Kristály Növekedés Gyorsító
|
||||
tile.appliedenergistics2.BlockSkyStone.name=Égbolt Kő
|
||||
tile.appliedenergistics2.BlockSkyStone.name=Égboltkő
|
||||
tile.appliedenergistics2.BlockSkyStone.Block.name=Égboltkő Blokk
|
||||
tile.appliedenergistics2.BlockSkyStone.Brick.name=Égboltkő Tégla
|
||||
tile.appliedenergistics2.BlockSkyStone.SmallBrick.name=Kicsi Égboltkő Tégla
|
||||
tile.appliedenergistics2.BlockSkyChest.name=Égboltkő Láda
|
||||
tile.appliedenergistics2.BlockSkyChest.Block.name=Égboltkő Blokk Láda
|
||||
tile.appliedenergistics2.BlockSkyCompass.name=Meteorite Iránytű
|
||||
tile.appliedenergistics2.BlockSkyCompass.name=Meteor Iránytű
|
||||
tile.appliedenergistics2.BlockCraftingMonitor.name=Barkácsoló Monitor
|
||||
tile.appliedenergistics2.BlockCraftingStorage.name=1k Crafting Tároló
|
||||
tile.appliedenergistics2.BlockCraftingStorage4k.name=4k Crafting Tároló
|
||||
tile.appliedenergistics2.BlockCraftingStorage16k.name=16k Crafting Tároló
|
||||
tile.appliedenergistics2.BlockCraftingStorage64k.name=64k Crafting Tároló
|
||||
tile.appliedenergistics2.BlockCraftingAccelerator.name=Crafting Co-Processing Egység
|
||||
tile.appliedenergistics2.BlockCraftingUnit.name=Crafting Egység
|
||||
tile.appliedenergistics2.BlockMolecularAssembler.name=Molekuláris Összerakó
|
||||
tile.appliedenergistics2.BlockCraftingStorage.name=1k Barkács Tároló
|
||||
tile.appliedenergistics2.BlockCraftingStorage4k.name=4k Barkács Tároló
|
||||
tile.appliedenergistics2.BlockCraftingStorage16k.name=16k Barkács Tároló
|
||||
tile.appliedenergistics2.BlockCraftingStorage64k.name=64k Barkács Tároló
|
||||
tile.appliedenergistics2.BlockCraftingAccelerator.name=Barkács Segédfeldolgozó Egység
|
||||
tile.appliedenergistics2.BlockCraftingUnit.name=Barkácsoló Egység
|
||||
tile.appliedenergistics2.BlockMolecularAssembler.name=Molekuláris Összeállító
|
||||
|
||||
|
||||
// Stairs
|
||||
tile.appliedenergistics2.ChiseledQuartzStairBlock.name=Finom Certus Kvarc Lépcső
|
||||
tile.appliedenergistics2.FluixStairBlock.name=Fluix Lépcső
|
||||
tile.appliedenergistics2.QuartzPillarStairBlock.name=Certus Kvarc Oszlop Lépcső
|
||||
tile.appliedenergistics2.QuartzStairBlock.name=Certus Kvarc Lépcső
|
||||
tile.appliedenergistics2.SkyStoneBlockStairBlock.name=Égboltkő Blokk Lépcső
|
||||
tile.appliedenergistics2.SkyStoneBrickStairBlock.name=Égboltkő Tégla Lépcső
|
||||
tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Kicsi Égboltkő Tégla Lépcső
|
||||
tile.appliedenergistics2.SkyStoneStairBlock.name=Égboltkő Lépcső
|
||||
|
||||
// Slabs
|
||||
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Finom Certus Kvarc Lépcsőfok
|
||||
tile.appliedenergistics2.FluixSlabBlock.name=Fluix Lépcsőfok
|
||||
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Certus Kvarc Oszlop Lépcsőfok
|
||||
tile.appliedenergistics2.QuartzSlabBlock.name=Certus Kvarc Lépcsőfok
|
||||
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Égboltkő Blokk Lépcsőfok
|
||||
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Égboltkő Tégla Lépcsőfok
|
||||
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Kicsi Égboltkő Tégla Lépcsőfok
|
||||
tile.appliedenergistics2.SkyStoneSlabBlock.name=Égboltkő Lépcsőfok
|
||||
|
||||
// Chat Messages
|
||||
chat.appliedenergistics2.ChestCannotReadStorageCell=Az ME Láda nem tudja olvasni a tároló cellát.
|
||||
chat.appliedenergistics2.SettingCleared=Beállítások törölve.
|
||||
chat.appliedenergistics2.OutOfRange=Wireless hatókörön kívül.
|
||||
chat.appliedenergistics2.OutOfRange=A vezetéknélküli hozzáférési pont hatókörön kívül van.
|
||||
chat.appliedenergistics2.InvalidMachine=Érvénytelen gép.
|
||||
chat.appliedenergistics2.LoadedSettings=Beállítások sikeresen beolvasva.
|
||||
chat.appliedenergistics2.DeviceNotPowered=A készüléknek alacsony az energia szintje.
|
||||
chat.appliedenergistics2.MachineNotPowered=A készülék nem kap energiát.
|
||||
chat.appliedenergistics2.CommunicationError=Hiba lépet fel a hálózat kommunikációja közben.
|
||||
chat.appliedenergistics2.DeviceNotPowered=A készülékenergia szintje alacsony.
|
||||
chat.appliedenergistics2.DeviceNotWirelessTerminal=A készülék nem egy Vezetéknélküli Terminál.
|
||||
chat.appliedenergistics2.DeviceNotLinked=Az eszköz nem összekötve.
|
||||
chat.appliedenergistics2.SavedSettings=Beállítások sikeresen elmentve.
|
||||
chat.appliedenergistics2.MachineNotPowered=A gép nem kap energiát.
|
||||
chat.appliedenergistics2.CommunicationError=Hiba a hálózattal való kommunikáció közben.
|
||||
chat.appliedenergistics2.SavedSettings=Beállítások sikeresen mentve.
|
||||
chat.appliedenergistics2.AmmoDepleted=A lőszer kiürült.
|
||||
chat.appliedenergistics2.isNowLocked=Monitor zárolva.
|
||||
chat.appliedenergistics2.isNowUnlocked=Monitor feloldva.
|
||||
|
||||
// Creative Tabs
|
||||
itemGroup.appliedenergistics2=Applied Energistics 2
|
||||
itemGroup.appliedenergistics2.facades=Applied Energistics 2 - Homlokzatok
|
||||
itemGroup.appliedenergistics2.facades=Applied Energistics 2 - Látszatok
|
||||
|
||||
// GUI
|
||||
gui.appliedenergistics2.CraftingTerminal=Barkácsoló Terminál
|
||||
gui.appliedenergistics2.METunnel=ME
|
||||
gui.appliedenergistics2.ItemTunnel=Item
|
||||
gui.appliedenergistics2.FluidTunnel=Folyadék
|
||||
gui.appliedenergistics2.RedstoneTunnel=Vöröskő
|
||||
gui.appliedenergistics2.EUTunnel=EU
|
||||
gui.appliedenergistics2.RFTunnel=RF
|
||||
gui.appliedenergistics2.LightTunnel=Fény
|
||||
gui.appliedenergistics2.METunnel=ME Csatorna
|
||||
gui.appliedenergistics2.ItemTunnel=Tárgy Csatorna
|
||||
gui.appliedenergistics2.FluidTunnel=Folyadék Csatorna
|
||||
gui.appliedenergistics2.RedstoneTunnel=Vöröskő Csatorna
|
||||
gui.appliedenergistics2.EUTunnel=EU Csatorna
|
||||
gui.appliedenergistics2.RFTunnel=RF Csatorna
|
||||
gui.appliedenergistics2.LightTunnel=Fény Csatorna
|
||||
gui.appliedenergistics2.OCTunnel=OpenComputers
|
||||
gui.appliedenergistics2.PressureTunnel=Nyomás
|
||||
|
||||
gui.appliedenergistics2.security.extract.name=Kiszed
|
||||
gui.appliedenergistics2.security.inject.name=Berak
|
||||
gui.appliedenergistics2.security.craft.name=Craftolás
|
||||
gui.appliedenergistics2.security.extract.name=Eltávolítás
|
||||
gui.appliedenergistics2.security.inject.name=Behelyezés
|
||||
gui.appliedenergistics2.security.craft.name=Barkácsolás
|
||||
gui.appliedenergistics2.security.build.name=Építés
|
||||
gui.appliedenergistics2.security.security.name=Biztonság
|
||||
|
||||
gui.appliedenergistics2.security.extract.tip=A felhasználónak engedélyezett, hogy eltávolítson itemeket a tárolóból.
|
||||
gui.appliedenergistics2.security.inject.tip=A felhasználónak engedélyezett, hogy tároljon új itemeket a tárolóban.
|
||||
gui.appliedenergistics2.security.craft.tip=A felhasználó képes indítani új craftolást.
|
||||
gui.appliedenergistics2.security.build.tip=A felhasználó képes módosítani a teljes struktúrát a hálózaton, illetve képes változtatni a beállításokon.
|
||||
gui.appliedenergistics2.security.extract.tip=A felhasználónak engedélyezett, hogy eltávolítson tárgyakat a tárolóból.
|
||||
gui.appliedenergistics2.security.inject.tip=A felhasználónak engedélyezett, hogy új tárgyakat helyezzen a tárolóba.
|
||||
gui.appliedenergistics2.security.craft.tip=A felhasználó képes új barkács folyamatot indítani.
|
||||
gui.appliedenergistics2.security.build.tip=A felhasználó képes módosítani a hálózat teljes struktúráját, illetve változtatni a beállításokon.
|
||||
gui.appliedenergistics2.security.security.tip=A felhasználó képes hozzáférni és módosítani a biztonsági terminálon.
|
||||
|
||||
gui.appliedenergistics2.Efficiency=Hatékonyság
|
||||
gui.appliedenergistics2.RequiredPower=Szükséges Energia
|
||||
gui.appliedenergistics2.StoredPower=Tárolt Energia
|
||||
gui.appliedenergistics2.MaxPower=Maximum Energia
|
||||
gui.appliedenergistics2.QuartzCuttingKnife=Kvarc Vágó Kés
|
||||
gui.appliedenergistics2.Inscriber=Karcoló
|
||||
gui.appliedenergistics2.Wireless=Wireless Hozzáférési Pont
|
||||
gui.appliedenergistics2.WirelessTerminal=Wireless terminal
|
||||
gui.appliedenergistics2.QuartzCuttingKnife=Kvarc Vágókés
|
||||
gui.appliedenergistics2.Inscriber=Véső
|
||||
gui.appliedenergistics2.Wireless=Vezetéknélküli Hozzáférési Pont
|
||||
gui.appliedenergistics2.WirelessTerminal=Vezetéknélküli terminál
|
||||
gui.appliedenergistics2.NoPermissions=Hozzáférési jog nincs kijelölve.
|
||||
gui.appliedenergistics2.SecurityCardEditor=Biometrikus kártya szerkesztő
|
||||
gui.appliedenergistics2.Encoded=Kódolva
|
||||
gui.appliedenergistics2.Priority=Prioritás
|
||||
gui.appliedenergistics2.StorageBus=Tároló Busz
|
||||
gui.appliedenergistics2.EnergyDrain=Passzív Elszívás
|
||||
gui.appliedenergistics2.EnergyDrain=Passzív energia igény
|
||||
gui.appliedenergistics2.Installed=Telepítve
|
||||
gui.appliedenergistics2.NetworkTool=Hálózati Eszköz
|
||||
gui.appliedenergistics2.PowerUsageRate=Energia Használat
|
||||
gui.appliedenergistics2.PowerInputRate=Energia Generálás
|
||||
gui.appliedenergistics2.PowerInputRate=Energia Bemenet
|
||||
gui.appliedenergistics2.PortableCell=Szállítható Cella
|
||||
gui.appliedenergistics2.Security=Biztonsági Szabályzat
|
||||
gui.appliedenergistics2.CellWorkbench=Cella Munkaasztal
|
||||
gui.appliedenergistics2.QuantumLinkChamber=Kvantum összekötő kamra
|
||||
gui.appliedenergistics2.IOPort=ME IO Port
|
||||
gui.appliedenergistics2.IOPort=ME Be/Ki Port
|
||||
gui.appliedenergistics2.Chest=ME Láda
|
||||
gui.appliedenergistics2.Condenser=Matter Condenser
|
||||
gui.appliedenergistics2.Config=Konfig
|
||||
gui.appliedenergistics2.Condenser=Anyag Sűrítő
|
||||
gui.appliedenergistics2.Config=Konfiguráció
|
||||
gui.appliedenergistics2.Drive=ME Meghajtó
|
||||
gui.appliedenergistics2.ExportBus=ME Export Busz
|
||||
gui.appliedenergistics2.GrindStone=Csiszoló
|
||||
gui.appliedenergistics2.GrindStone=Daráló
|
||||
gui.appliedenergistics2.ImportBus=ME Import Busz
|
||||
gui.appliedenergistics2.Interface=ME Csatlakozás Felület
|
||||
gui.appliedenergistics2.LevelEmitter=ME Level Emitter
|
||||
gui.appliedenergistics2.Interface=ME Interfész
|
||||
gui.appliedenergistics2.LevelEmitter=ME Szint Kibocsátó
|
||||
gui.appliedenergistics2.Of=-ból
|
||||
gui.appliedenergistics2.Patterns=Minták
|
||||
gui.appliedenergistics2.SpatialIOPort=Spatial IO Port
|
||||
gui.appliedenergistics2.SpatialIOPort=Tér-IO Port
|
||||
gui.appliedenergistics2.StoredEnergy=Tárolt Energia
|
||||
gui.appliedenergistics2.StoredItems=Tárolt Itemek
|
||||
gui.appliedenergistics2.Terminal=Terminal
|
||||
gui.appliedenergistics2.InterfaceTerminal=Interface Terminal
|
||||
gui.appliedenergistics2.InterfaceTerminalHint=Show Or Hide on Interface Terminal.
|
||||
gui.appliedenergistics2.FormationPlane=Formation Plane
|
||||
gui.appliedenergistics2.StoredItems=Tárolt Tárgyak
|
||||
gui.appliedenergistics2.Terminal=Terminál
|
||||
gui.appliedenergistics2.InterfaceTerminal=Interfész Terminál
|
||||
gui.appliedenergistics2.InterfaceTerminalHint=Az interfész terminál megjelenítése, elrejtése.
|
||||
gui.appliedenergistics2.FormationPlane=Kialakító Lap
|
||||
gui.appliedenergistics2.VibrationChamber=Vibrációs Kamra
|
||||
gui.appliedenergistics2.NetworkDetails=Hálózati Részletek
|
||||
gui.appliedenergistics2.StorageCells=ME Tároló Cellák
|
||||
gui.appliedenergistics2.IOBuses=ME Import/Export Busz
|
||||
gui.appliedenergistics2.Stores=Stores
|
||||
gui.appliedenergistics2.BytesUsed=Bytes használva
|
||||
gui.appliedenergistics2.Stores=Tárak
|
||||
gui.appliedenergistics2.BytesUsed=Használt bájtok
|
||||
gui.appliedenergistics2.Types=Típus
|
||||
gui.appliedenergistics2.Blank=Üres
|
||||
gui.appliedenergistics2.Unlinked=Nincs Összekötve
|
||||
gui.appliedenergistics2.Linked=Összekötve
|
||||
gui.appliedenergistics2.StoredSize=Tárolt Méret
|
||||
gui.appliedenergistics2.SkyChest=Ékboltkő Láda
|
||||
gui.appliedenergistics2.PatternTerminal=Minta Terminal
|
||||
gui.appliedenergistics2.CraftingPattern=Minta Kraftolás
|
||||
gui.appliedenergistics2.MolecularAssembler=Molekuláris Összerakó
|
||||
gui.appliedenergistics2.ProcessingPattern=Minta Feldolgozó
|
||||
gui.appliedenergistics2.Crafts=Crafts
|
||||
gui.appliedenergistics2.PatternTerminal=Minta Terminál
|
||||
gui.appliedenergistics2.CraftingPattern=Barkácsoló Minta
|
||||
gui.appliedenergistics2.MolecularAssembler=Molekuláris Összeállító
|
||||
gui.appliedenergistics2.ProcessingPattern=Feldolgozó Minta
|
||||
gui.appliedenergistics2.Crafts=Barkácsol
|
||||
gui.appliedenergistics2.And=és
|
||||
gui.appliedenergistics2.Creates=Creates
|
||||
gui.appliedenergistics2.With=-vel
|
||||
gui.appliedenergistics2.InWorldCrafting=AE2 In World Crafting
|
||||
gui.appliedenergistics2.inWorldFluix=Drop 1 Charged Certus Quartz + 1 Nether Quartz + Redstone Dust into a puddle next to one another and wait a moment.
|
||||
gui.appliedenergistics2.inWorldPurificationCertus=Drop a Certus Quartz Seed made from Certus Quartz Dust and Sand into a puddle of water; to make the process faster add Crystal Growth Accelerators.
|
||||
gui.appliedenergistics2.inWorldPurificationNether=Drop a Nether Quartz Seed made from Nether Quartz Dust and Sand into a puddle of water; to make the process faster add Crystal Growth Accelerators.
|
||||
gui.appliedenergistics2.inWorldPurificationFluix=Drop a Fluix Seed made from Fluix Dust and Sand into a puddle of water; to make the process faster add Crystal Growth Accelerators.
|
||||
gui.appliedenergistics2.inWorldSingularity=To create drop 1 Singularity and 1 Ender Dust and cause an explosion within range of the items.
|
||||
gui.appliedenergistics2.ChargedQuartz=Charged Certus Quartz is crafted by inserting an uncharged Certus Quartz Crystal into the Charger, and powering it.
|
||||
gui.appliedenergistics2.OfSecondOutput=%1$d%% Chance for second output.
|
||||
gui.appliedenergistics2.NoSecondOutput=No Secondary Output
|
||||
gui.appliedenergistics2.SelectAmount=Select Amount
|
||||
gui.appliedenergistics2.CopyMode=Copy Mode
|
||||
gui.appliedenergistics2.CopyModeDesc=Controls if the contents of the configuration pane are cleared when you remove the cell.
|
||||
gui.appliedenergistics2.Creates=Készít
|
||||
gui.appliedenergistics2.With=-val/-vel
|
||||
gui.appliedenergistics2.Substitute=Pótlékokat használ:
|
||||
gui.appliedenergistics2.Yes=Igen
|
||||
gui.appliedenergistics2.No=Nem
|
||||
gui.appliedenergistics2.InWorldCrafting=AE2 Világbeli Barkácsolás
|
||||
gui.appliedenergistics2.inWorldFluix=Dobj 1 Töltött Certus Kvarcot + 1 Alvilági Kvarcot + 1 Vöröskő port egymás mellé egy pocsolyába.
|
||||
gui.appliedenergistics2.inWorldPurificationCertus=Dobj egy Certus Kvarc Porból és homokból készúlt magot vízbe; Hogy felgyorsítsd a folyamatot helyezz le Kristály Növekedés gyorsítót.
|
||||
gui.appliedenergistics2.inWorldPurificationNether=Dobj egy Alvilági Kvarc Porból és homokból készúlt magot vízbe; Hogy felgyorsítsd a folyamatot helyezz le Kristály Növekedés gyorsítót.
|
||||
gui.appliedenergistics2.inWorldPurificationFluix=Dobj egy Fluix Porból és homokból készúlt magot vízbe; Hogy felgyorsítsd a folyamatot helyezz le Kristály Növekedés gyorsítót.
|
||||
gui.appliedenergistics2.inWorldSingularity=A készítéséhez dobj egy Szingularitást és egy Bevégzőgyöngy Port a földre és robbantsd fel őket.
|
||||
gui.appliedenergistics2.ChargedQuartz=Töltött Certus Kvarc készítéséhez helyezz be egy Certus Kvarcot a Töltőbe.
|
||||
gui.appliedenergistics2.ChargedQuartzFind=Töltött Certus Kvarcot félritkán találhatsz a világban. Hasonlít a sima Certus Kvarca csak szikrázik.
|
||||
gui.appliedenergistics2.NoSecondOutput=Nincs másodlagos termék
|
||||
gui.appliedenergistics2.OfSecondOutput=%1$d%% Esély másodlagos termékre.
|
||||
gui.appliedenergistics2.MultipleOutputs=%1$d%% esély másodlagos, %2$d%% esély harmadlagos termékre.
|
||||
gui.appliedenergistics2.SelectAmount=Válassz mennyíséget
|
||||
gui.appliedenergistics2.CopyMode=Másoló mód
|
||||
gui.appliedenergistics2.CopyModeDesc=Befolyásolja hogy a beállítás ablakon lévő tárgyak megjelennek-e a terminálban.
|
||||
gui.appliedenergistics2.Next=Következő
|
||||
gui.appliedenergistics2.Lumen=Lumen
|
||||
gui.appliedenergistics2.Empty=Üres
|
||||
gui.appliedenergistics2.Stored=Tárolva
|
||||
gui.appliedenergistics2.Cancel=Mégse
|
||||
gui.appliedenergistics2.Crafting=Craftolás
|
||||
gui.appliedenergistics2.Scheduled=Idözitve
|
||||
gui.appliedenergistics2.CraftingStatus=Craftolási Státusz
|
||||
gui.appliedenergistics2.ETAFormat=HH:mm:ss
|
||||
gui.appliedenergistics2.Crafting=Barkácsolás
|
||||
gui.appliedenergistics2.Scheduled=Ütemezett
|
||||
gui.appliedenergistics2.CraftingStatus=Barkácsolási Státusz
|
||||
gui.appliedenergistics2.FromStorage=Rendelkezésre áll
|
||||
gui.appliedenergistics2.ToCraft=To Craft
|
||||
gui.appliedenergistics2.CraftingPlan=Crafting Plan
|
||||
gui.appliedenergistics2.Automatic=Autmatikus
|
||||
gui.appliedenergistics2.ToCraft=Hogy barkácsoljon
|
||||
gui.appliedenergistics2.CraftingPlan=Barkácsolási terv
|
||||
gui.appliedenergistics2.Automatic=Automatikus
|
||||
gui.appliedenergistics2.Start=Indítás
|
||||
gui.appliedenergistics2.Missing=Hiányzik
|
||||
gui.appliedenergistics2.Bytes=Storage
|
||||
gui.appliedenergistics2.Simulation=Simulation
|
||||
gui.appliedenergistics2.CoProcessors=Co Processors
|
||||
gui.appliedenergistics2.CraftingCPU=Crafting CPU
|
||||
gui.appliedenergistics2.NoCraftingCPUs=No Crafting CPUs are Available
|
||||
gui.appliedenergistics2.CalculatingWait=Calculating Please Wait...
|
||||
gui.appliedenergistics2.Bytes=Bájt
|
||||
gui.appliedenergistics2.Simulation=Szimuláció
|
||||
gui.appliedenergistics2.CoProcessors=Segéd CPU
|
||||
gui.appliedenergistics2.CraftingCPU=Barkácsolási CPU
|
||||
gui.appliedenergistics2.NoCraftingCPUs=Nincs elérhető Barkácsolási CPU
|
||||
gui.appliedenergistics2.CalculatingWait=Számítás folyamatban...
|
||||
gui.appliedenergistics2.Clean=Tiszta
|
||||
gui.appliedenergistics2.InvalidPattern=Invalid Pattern
|
||||
gui.appliedenergistics2.InvalidPattern=Érvénytelen Minta
|
||||
gui.appliedenergistics2.Range=Hatótáv
|
||||
gui.appliedenergistics2.TransparentFacades=Átlátszó Látszatok
|
||||
gui.appliedenergistics2.TransparentFacadesHint=Irányítja a látszatok láthatóságát miközben a Hálózati Eszköz a hotbarodon van.
|
||||
gui.appliedenergistics2.CPUs=CPU
|
||||
gui.appliedenergistics2.NoCraftingJobs=Nincs aktív Barkács folyamat
|
||||
gui.appliedenergistics2.FacadeCrafting=Látszat Barkácsolás
|
||||
gui.appliedenergistics2.inWorldCraftingPresses=A Barkács Nyomatok meteoritok belsejében találhatók amiket a világban találsz, a Meteor Iránytű segítségével.
|
||||
gui.appliedenergistics2.Included=Tartalmazott
|
||||
gui.appliedenergistics2.Excluded=Kihagyott
|
||||
gui.appliedenergistics2.Partitioned=Particionált
|
||||
gui.appliedenergistics2.Precise=Precíz
|
||||
gui.appliedenergistics2.Fuzzy=Homályos
|
||||
gui.appliedenergistics2.SmallFontCraft=Barkács
|
||||
gui.appliedenergistics2.LargeFontCraft=+
|
||||
gui.appliedenergistics2.Nothing=Semmi
|
||||
|
||||
gui.tooltips.appliedenergistics2.Stash=Store Items
|
||||
gui.tooltips.appliedenergistics2.StashDesc=Return items on the crafting grid to network storage.
|
||||
gui.tooltips.appliedenergistics2.Substitutions=Ore-Dict Substitutions
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsDesc=Edit substitution options for input components.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOn=Substitutions Enabled
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOff=Substitutions Disabled
|
||||
gui.tooltips.appliedenergistics2.Encode=Encode Pattern
|
||||
gui.tooltips.appliedenergistics2.EncodeDescription=Write the entered pattern to the current encoded pattern, or to available blank pattern.
|
||||
gui.tooltips.appliedenergistics2.FuzzyMode=Fuzzy Comparison
|
||||
gui.tooltips.appliedenergistics2.FZPercent_25=Split Damage at 25%
|
||||
gui.tooltips.appliedenergistics2.FZPercent_50=Split Damage at 50%
|
||||
gui.tooltips.appliedenergistics2.FZPercent_75=Split Damage at 75%
|
||||
gui.tooltips.appliedenergistics2.FZPercent_99=Split Damage at 99%
|
||||
gui.tooltips.appliedenergistics2.SortOrder=Sort Order
|
||||
gui.tooltips.appliedenergistics2.SortBy=Sort By
|
||||
gui.tooltips.appliedenergistics2.FZIgnoreAll=Match Any
|
||||
gui.tooltips.appliedenergistics2.TransferDirection=Transfer Direction
|
||||
gui.tooltips.appliedenergistics2.TransferToNetwork=Transfer data to Network
|
||||
gui.tooltips.appliedenergistics2.TransferToStorageCell=Transfer data to Storage Cell
|
||||
gui.tooltips.appliedenergistics2.ToggleSortDirection=Toggle sorting direction
|
||||
gui.tooltips.appliedenergistics2.StoredItems=Stored Items
|
||||
gui.tooltips.appliedenergistics2.StoredCraftable=Stored / Craftable
|
||||
gui.tooltips.appliedenergistics2.View=View
|
||||
gui.tooltips.appliedenergistics2.RedstoneMode=Redstone Mode
|
||||
gui.tooltips.appliedenergistics2.OperationMode=Operation Mode
|
||||
gui.tooltips.appliedenergistics2.NumberOfItems=Number of items
|
||||
gui.tooltips.appliedenergistics2.ItemName=Item name
|
||||
gui.tooltips.appliedenergistics2.PowerUnits=Power Units
|
||||
gui.tooltips.appliedenergistics2.IOMode=Input/Output Mode
|
||||
gui.tooltips.appliedenergistics2.CondenserOutput=ME Condenser - Output
|
||||
gui.tooltips.appliedenergistics2.PartitionStorage=Partition Storage
|
||||
gui.tooltips.appliedenergistics2.Clear=Clear
|
||||
gui.tooltips.appliedenergistics2.TrashController=Deletion via Shift / Space Clicking.
|
||||
gui.tooltips.appliedenergistics2.InterfaceBlockingMode=Blocking Mode
|
||||
gui.tooltips.appliedenergistics2.InterfaceCraftingMode=Crafting Mode
|
||||
gui.tooltips.appliedenergistics2.Trash=Destroy Items
|
||||
gui.tooltips.appliedenergistics2.MatterBalls=Condense Into Matter Balls\n%s per item
|
||||
gui.tooltips.appliedenergistics2.Singularity=Condense Into Singularities\n%s per item
|
||||
gui.tooltips.appliedenergistics2.Read=Extract Only
|
||||
gui.tooltips.appliedenergistics2.Write=Insert Only
|
||||
gui.tooltips.appliedenergistics2.ReadWrite=Bi-Directional
|
||||
gui.tooltips.appliedenergistics2.AlwaysActive=Always active
|
||||
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=Active without signal
|
||||
gui.tooltips.appliedenergistics2.ActiveWithSignal=Active with signal
|
||||
gui.tooltips.appliedenergistics2.ActiveOnPulse=Activate once per pulse
|
||||
gui.tooltips.appliedenergistics2.EmitLevelsBelow=Emit when levels are below or equal to limit.
|
||||
gui.tooltips.appliedenergistics2.EmitLevelAbove=Emit when levels are above or equal to limit.
|
||||
gui.tooltips.appliedenergistics2.SearchMode_Auto=Auto Search
|
||||
gui.tooltips.appliedenergistics2.SearchMode_Standard=Standard Search
|
||||
gui.tooltips.appliedenergistics2.SearchMode_NEIAuto=NEI Syncronized Auto
|
||||
gui.tooltips.appliedenergistics2.SearchMode_NEIStandard=NEI Syncronized Standard
|
||||
gui.tooltips.appliedenergistics2.SearchMode=Search Box Mode
|
||||
gui.tooltips.appliedenergistics2.PartitionStorageHint=Configures Partition based on currently stored items.
|
||||
gui.tooltips.appliedenergistics2.ClearSettings=Clear Config/Settings
|
||||
gui.tooltips.appliedenergistics2.Craftable=Craftable
|
||||
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Move to output when empty.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Move to output when work is done.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenFull=Move to output when full.
|
||||
gui.tooltips.appliedenergistics2.Disabled=Disabled
|
||||
gui.tooltips.appliedenergistics2.Enable=Enabled
|
||||
gui.tooltips.appliedenergistics2.Blocking=Do not push crafing items if inventory contains items.
|
||||
gui.tooltips.appliedenergistics2.NonBlocking=Ignore the contents of the target inventory.
|
||||
gui.tooltips.appliedenergistics2.Craft=Crafting Behavior
|
||||
gui.tooltips.appliedenergistics2.CraftOnly=Do not use stocked items, only craft items while exporting.
|
||||
gui.tooltips.appliedenergistics2.CraftEither=Use stocked items, or craft items while exporting.
|
||||
gui.tooltips.appliedenergistics2.LevelType=Level Type
|
||||
gui.tooltips.appliedenergistics2.LevelType_Energy=Energy
|
||||
gui.tooltips.appliedenergistics2.LevelType_Item=Item
|
||||
// GUI Tooltips
|
||||
gui.tooltips.appliedenergistics2.Stash=Tárgyak raktározása
|
||||
gui.tooltips.appliedenergistics2.StashDesc=A tárgyak barkácsfelületről való hálózatba helyezése.
|
||||
gui.tooltips.appliedenergistics2.Substitutions=Érc-szótár pótlás
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsDescEnabled=Bemeneti pótlékok engedélyezése.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsDescDisabled=Bemeneti pótlékok tiltása.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOn=Pótlékok engedélyezve.
|
||||
gui.tooltips.appliedenergistics2.SubstitutionsOff=Pótlékok tiltva.
|
||||
gui.tooltips.appliedenergistics2.Encode=Minta kódolása
|
||||
gui.tooltips.appliedenergistics2.EncodeDescription=A betáplált minta jelenlegi Kódolt Mintára, vagy elérhető Üres Mintára írása.
|
||||
gui.tooltips.appliedenergistics2.FuzzyMode=Homályos összehasonlítás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_25=25% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_50=50% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_75=75% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.FZPercent_99=99% sérülésnél való elválasztás
|
||||
gui.tooltips.appliedenergistics2.SortOrder=Rendezési sorrend
|
||||
gui.tooltips.appliedenergistics2.SortBy=Rendezés ... szerint
|
||||
gui.tooltips.appliedenergistics2.FZIgnoreAll=Akármelyikkel egyező
|
||||
gui.tooltips.appliedenergistics2.TransferDirection=Átviteli irány
|
||||
gui.tooltips.appliedenergistics2.TransferToNetwork=Az adat hálózat felé való átvitele
|
||||
gui.tooltips.appliedenergistics2.TransferToStorageCell=Az adat Taroló Cella felé való átvitele
|
||||
gui.tooltips.appliedenergistics2.ToggleSortDirection=Rendezési irány kapcsolása
|
||||
gui.tooltips.appliedenergistics2.StoredItems=Tárolt tárgyak
|
||||
gui.tooltips.appliedenergistics2.StoredCraftable=Tárolt / Barkácsolható
|
||||
gui.tooltips.appliedenergistics2.View=Megtekintés
|
||||
gui.tooltips.appliedenergistics2.RedstoneMode=Vöröskő Mód
|
||||
gui.tooltips.appliedenergistics2.OperationMode=Művelet Mód
|
||||
gui.tooltips.appliedenergistics2.NumberOfItems=Tárgyak száma
|
||||
gui.tooltips.appliedenergistics2.ItemName=Tárgy neve
|
||||
gui.tooltips.appliedenergistics2.PowerUnits=Energia egységek
|
||||
gui.tooltips.appliedenergistics2.IOMode=Bemenet/Kimenet Mód
|
||||
gui.tooltips.appliedenergistics2.CondenserOutput=ME Sűrítő - Kimenet
|
||||
gui.tooltips.appliedenergistics2.PartitionStorage=Partició Tároló
|
||||
gui.tooltips.appliedenergistics2.Clear=Ürítés
|
||||
gui.tooltips.appliedenergistics2.TrashController=Törlés Shift/Szóköz+Kattintással.
|
||||
gui.tooltips.appliedenergistics2.InterfaceBlockingMode=Torlaszoló Mód
|
||||
gui.tooltips.appliedenergistics2.InterfaceCraftingMode=Barkácsoló Mód
|
||||
gui.tooltips.appliedenergistics2.Trash=Tágyak elpusztítása
|
||||
gui.tooltips.appliedenergistics2.MatterBalls=Anyaglabdává sűrítés \n%s darabonként
|
||||
gui.tooltips.appliedenergistics2.Singularity=Szingularitássá sűrítés \n%s darabonként
|
||||
gui.tooltips.appliedenergistics2.Read=Csak eltávolítás
|
||||
gui.tooltips.appliedenergistics2.Write=Csak behelyezés
|
||||
gui.tooltips.appliedenergistics2.ReadWrite=Két irányú
|
||||
gui.tooltips.appliedenergistics2.AlwaysActive=MIndig aktív
|
||||
gui.tooltips.appliedenergistics2.ActiveWithoutSignal=Jel nélkül aktív
|
||||
gui.tooltips.appliedenergistics2.ActiveWithSignal=Jellel aktív
|
||||
gui.tooltips.appliedenergistics2.ActiveOnPulse=Pulzusonként aktív
|
||||
gui.tooltips.appliedenergistics2.EmitLevelsBelow=Kibocsátás ha a szint a határérték alatt van vagy azzal egyenlő.
|
||||
gui.tooltips.appliedenergistics2.EmitLevelAbove=Kibocsátás ha a szint a határérték felett van vagy azzal egyenlő.
|
||||
gui.tooltips.appliedenergistics2.SearchMode_Auto=Automata keresés
|
||||
gui.tooltips.appliedenergistics2.SearchMode_Standard=Általános Keresés
|
||||
gui.tooltips.appliedenergistics2.SearchMode_NEIAuto=NEI-vel szinkronizált automata
|
||||
gui.tooltips.appliedenergistics2.SearchMode_NEIStandard=NEI-vel szinkronizált általános
|
||||
gui.tooltips.appliedenergistics2.SearchMode=Keresési rublika mód
|
||||
gui.tooltips.appliedenergistics2.PartitionStorageHint=A jelenleg tárolt tárgyak szerint konfigurálja a particiót.
|
||||
gui.tooltips.appliedenergistics2.ClearSettings=Beállítások konfigurálása/törlése
|
||||
gui.tooltips.appliedenergistics2.Craftable=Barkácsolható
|
||||
gui.tooltips.appliedenergistics2.MoveWhenEmpty=Mozgassa a kimenetfelé mikor üres.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenWorkIsDone=Mozgassa a kimenetfelé mikor a feladat kész van.
|
||||
gui.tooltips.appliedenergistics2.MoveWhenFull=Mozgassa a kimenetfelé mikor teli van.
|
||||
gui.tooltips.appliedenergistics2.Disabled=Tiltott
|
||||
gui.tooltips.appliedenergistics2.Enable=Engedélyezett
|
||||
gui.tooltips.appliedenergistics2.Blocking=Ne helyezzen barkácsoló tárgyakat a tárolóba ha az tartalmaz tárgyakat.
|
||||
gui.tooltips.appliedenergistics2.NonBlocking=A cél tároló tartalmának figyelmenkívül hagyása.
|
||||
gui.tooltips.appliedenergistics2.Craft=Barkácsoló Viselkedés
|
||||
gui.tooltips.appliedenergistics2.CraftOnly=Ne használjon tárolt tárgyakat, csak export közben barkácsoljon.
|
||||
gui.tooltips.appliedenergistics2.CraftEither=Használjon tárolt tárgyakat, vagy eyport közben barkácsoljon.
|
||||
gui.tooltips.appliedenergistics2.LevelType=Szint Típus
|
||||
gui.tooltips.appliedenergistics2.LevelType_Energy=Energia
|
||||
gui.tooltips.appliedenergistics2.LevelType_Item=Tárgy
|
||||
gui.tooltips.appliedenergistics2.InventoryTweaks=Inventory Tweaks
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle=Terminal Style
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Full=Full Screen Terminal
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Tall Centered Terminal
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Small=Small Centered Terminal
|
||||
gui.tooltips.appliedenergistics2.Mod=Mod
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle=Terminál Stílus
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Full=Teljes képernyős Terminál
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Tall=Magas Középreigazított Terminál
|
||||
gui.tooltips.appliedenergistics2.TerminalStyle_Small=Kicsi Középreigazított Terminál
|
||||
gui.tooltips.appliedenergistics2.DoesntDespawn=Ez a tárgy nem fog eltűnni.
|
||||
gui.tooltips.appliedenergistics2.EmitterMode=Barkács Kibocsátó Mód
|
||||
gui.tooltips.appliedenergistics2.CraftViaRedstone=Jel kibocsátása barkácsoláshoz.
|
||||
gui.tooltips.appliedenergistics2.EmitWhenCrafting=Jel kibocsatása barkácsoláskor.
|
||||
gui.tooltips.appliedenergistics2.ReportInaccessibleItems=Elérhetetlen tárgyak jelentése
|
||||
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsYes=Igen: Az el nem távolítható tárgyak is megjelennek.
|
||||
gui.tooltips.appliedenergistics2.ReportInaccessibleItemsNo=Nem: Csak az eltávolítható tárgyak jelennek meg.
|
||||
gui.tooltips.appliedenergistics2.BlockPlacement=Blokk lehelyezés
|
||||
gui.tooltips.appliedenergistics2.BlockPlacementYes=A blokkok blokk ként lesznek lehelyezve.
|
||||
gui.tooltips.appliedenergistics2.BlockPlacementNo=A blokkok tárgyként lesznek eldobva.
|
||||
gui.tooltips.appliedenergistics2.SchedulingMode=Ütemező Mód
|
||||
gui.tooltips.appliedenergistics2.SchedulingModeDefault=Az első tárgy eltávolítása míg a hálózat üres, majd a következőké.
|
||||
gui.tooltips.appliedenergistics2.SchedulingModeRoundRobin=Eltávolítás körkörösen.
|
||||
gui.tooltips.appliedenergistics2.SchedulingModeRandom=Eltávolítás véletlenszerűen.
|
||||
gui.tooltips.appliedenergistics2.ItemsStored=Tárolt tárgyak száma: %s
|
||||
gui.tooltips.appliedenergistics2.ItemsRequestable=Kérhető Tárgyak száma: %s
|
||||
|
||||
// Units
|
||||
gui.appliedenergistics2.units.appliedenergstics=AE
|
||||
gui.appliedenergistics2.units.ic2=Energy Units
|
||||
gui.appliedenergistics2.units.mekanism=Joules
|
||||
gui.appliedenergistics2.units.rotarycraft=Watts
|
||||
gui.appliedenergistics2.units.thermalexpansion=Redstone Flux
|
||||
gui.appliedenergistics2.units.ic2=Energia Egység
|
||||
gui.appliedenergistics2.units.mekanism=Joule
|
||||
gui.appliedenergistics2.units.rotarycraft=Watt
|
||||
gui.appliedenergistics2.units.thermalexpansion=Vöröskő Flux
|
||||
|
||||
// Colors
|
||||
gui.appliedenergistics2.White=Fehér
|
||||
gui.appliedenergistics2.Orange=Narancssárga
|
||||
gui.appliedenergistics2.Orange=Narancs
|
||||
gui.appliedenergistics2.Magenta=Bíborvörös
|
||||
gui.appliedenergistics2.LightBlue=Világos kék
|
||||
gui.appliedenergistics2.LightBlue=Világoskék
|
||||
gui.appliedenergistics2.Yellow=Sárga
|
||||
gui.appliedenergistics2.Lime=Limezöld
|
||||
gui.appliedenergistics2.Pink=Rózsaszín
|
||||
gui.appliedenergistics2.Lime=Lime
|
||||
gui.appliedenergistics2.Pink=Pink
|
||||
gui.appliedenergistics2.Gray=Szürke
|
||||
gui.appliedenergistics2.LightGray=Világos szürke
|
||||
gui.appliedenergistics2.LightGray=Világosszürke
|
||||
gui.appliedenergistics2.Cyan=Cián
|
||||
gui.appliedenergistics2.Purple=Lila
|
||||
gui.appliedenergistics2.Blue=Kék
|
||||
gui.appliedenergistics2.Brown=Barna
|
||||
gui.appliedenergistics2.Green=Zöld
|
||||
gui.appliedenergistics2.Red=Piros
|
||||
gui.appliedenergistics2.Red=Vörös
|
||||
gui.appliedenergistics2.Black=Fekete
|
||||
gui.appliedenergistics2.Fluix=Fluix
|
||||
|
||||
// Waila
|
||||
waila.appliedenergistics2.Crafting=Barkácsol
|
||||
waila.appliedenergistics2.DeviceOnline=Eszköz Online
|
||||
waila.appliedenergistics2.DeviceOffline=Eszköz Offline
|
||||
waila.appliedenergistics2.DeviceMissingChannel=Eszköz Hiányszó Csatorna
|
||||
waila.appliedenergistics2.DeviceMissingChannel=Hiányzó Csatorna
|
||||
waila.appliedenergistics2.Locked=Zárolva
|
||||
waila.appliedenergistics2.Unlocked=Nincs zárolva
|
||||
waila.appliedenergistics2.Unlocked=Feloldva
|
||||
waila.appliedenergistics2.Showing=Mutatni
|
||||
waila.appliedenergistics2.Contains=Tárolni
|
||||
waila.appliedenergistics2.Channels=%1$d of %2$d Csatornák
|
||||
waila.appliedenergistics2.Contains=Tartalmaz
|
||||
waila.appliedenergistics2.Channels=%2$d Csatornából %1$d használatban
|
||||
|
||||
// Items
|
||||
item.appliedenergistics2.ItemBasicStorageCell.1k.name=1k ME Tároló Cella
|
||||
item.appliedenergistics2.ItemBasicStorageCell.4k.name=4k ME Tároló Cella
|
||||
item.appliedenergistics2.ItemBasicStorageCell.16k.name=16k ME Tároló Cella
|
||||
item.appliedenergistics2.ItemBasicStorageCell.64k.name=64k Tároló Cella
|
||||
item.appliedenergistics2.ItemCreativeStorageCell.name=Kreatív ME Tároló Cella
|
||||
item.appliedenergistics2.ItemEncodedPattern.name=Encoded Pattern
|
||||
item.appliedenergistics2.ItemViewCell.name=View Cell
|
||||
item.appliedenergistics2.ItemFacade.name=Cable Facade
|
||||
item.appliedenergistics2.ItemEncodedPattern.name=Kódolt Minta
|
||||
item.appliedenergistics2.ItemViewCell.name=Nézet Cella
|
||||
item.appliedenergistics2.ItemFacade.name=Kábel Látszat
|
||||
|
||||
item.appliedenergistics2.ItemCrystalSeed.Certus.name=Certus Kvarc Mag
|
||||
item.appliedenergistics2.ItemCrystalSeed.Nether.name=Alvilági Kvarc Mag
|
||||
item.appliedenergistics2.ItemCrystalSeed.Fluix.name=Fluix Mag
|
||||
item.appliedenergistics2.ItemMaterial.InvalidType.name=Ez a tárgy tiltva van.
|
||||
item.appliedenergistics2.ItemMaterial.AdvCard.name=Fejlett Kártya
|
||||
item.appliedenergistics2.ItemMaterial.AnnihilationCore.name=Megsemmisítő Mag
|
||||
item.appliedenergistics2.ItemMaterial.BasicCard.name=Egyszerű Kártya
|
||||
@@ -321,12 +396,12 @@ item.appliedenergistics2.ItemMaterial.Cell4kPart.name=4k ME Taroló Komponens
|
||||
item.appliedenergistics2.ItemMaterial.Cell16kPart.name=16k ME Taroló Komponens
|
||||
item.appliedenergistics2.ItemMaterial.Cell64kPart.name=64k ME Taroló Komponens
|
||||
item.appliedenergistics2.ItemMaterial.CertusQuartzCrystal.name=Certus Kvarc Kristály
|
||||
item.appliedenergistics2.ItemMaterial.CertusQuartzCrystalCharged.name=Feltöltött Certus Kvarc Kristály
|
||||
item.appliedenergistics2.ItemMaterial.CertusQuartzCrystalCharged.name=Töltött Certus Kvarc Kristály
|
||||
item.appliedenergistics2.ItemMaterial.CertusQuartzDust.name=Certus Kvarc Por
|
||||
item.appliedenergistics2.ItemMaterial.EmptyStorageCell.name=ME Storage Housing
|
||||
item.appliedenergistics2.ItemMaterial.EnderDust.name=Ender Por
|
||||
item.appliedenergistics2.ItemMaterial.EmptyStorageCell.name=ME Tároló Ház
|
||||
item.appliedenergistics2.ItemMaterial.EnderDust.name=Bevégző Gyöngy Por
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessor.name=Műszaki Processzor
|
||||
item.appliedenergistics2.ItemMaterial.Flour.name=Flour
|
||||
item.appliedenergistics2.ItemMaterial.Flour.name=Liszt
|
||||
item.appliedenergistics2.ItemMaterial.FluixCrystal.name=Fluix Kristály
|
||||
item.appliedenergistics2.ItemMaterial.FluixDust.name=Fluix Por
|
||||
item.appliedenergistics2.ItemMaterial.FluixPearl.name=Fluix Gyöngy
|
||||
@@ -340,58 +415,60 @@ item.appliedenergistics2.ItemMaterial.MatterBall.name=Anyag Labda
|
||||
item.appliedenergistics2.ItemMaterial.NetherQuartzDust.name=Alvilági Kvarc Por
|
||||
item.appliedenergistics2.ItemMaterial.PurifiedCertusQuartzCrystal.name=Tiszta Certus Kvarc Kristály
|
||||
item.appliedenergistics2.ItemMaterial.PurifiedFluixCrystal.name=Tiszta Fluix Kristály
|
||||
item.appliedenergistics2.ItemMaterial.PurifiedNetherQuartzCrystal.name=Tiszta Nether Kvarc Kristály
|
||||
item.appliedenergistics2.ItemMaterial.PurifiedNetherQuartzCrystal.name=Tiszta Alvilági Kvarc Kristály
|
||||
item.appliedenergistics2.ItemMaterial.QESingularity.name=Kvantum Átívelő Szingularitás
|
||||
item.appliedenergistics2.ItemMaterial.Silicon.name=Szilikon
|
||||
item.appliedenergistics2.ItemMaterial.Singularity.name=Szingularitás
|
||||
item.appliedenergistics2.ItemMaterial.Wireless.name=Wireless Fogadó
|
||||
item.appliedenergistics2.ItemMaterial.WirelessBooster.name=Wireless Erősítő
|
||||
item.appliedenergistics2.ItemMaterial.Wireless.name=Vezetéknélküli Fogadó
|
||||
item.appliedenergistics2.ItemMaterial.WirelessBooster.name=Vezetéknélküli Erősítő
|
||||
item.appliedenergistics2.ItemMaterial.WoodenGear.name=Fa fogaskerék
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=Karcolt Műszaki Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=Karcolt Kalkulációs Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=Karcolt Logikai Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessorPress.name=Vésett Műszaki Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessorPress.name=Vésett Kalkulációs Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.LogicProcessorPress.name=Vésett Logikai Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.EngProcessorPrint.name=Nyomtatott Műszaki Áramkör
|
||||
item.appliedenergistics2.ItemMaterial.CalcProcessorPrint.name=Nyomtatott Kalkulációs Áramkör
|
||||
item.appliedenergistics2.ItemMaterial.LogicProcessorPrint.name=Nyomtatott Logikai Áramkör
|
||||
item.appliedenergistics2.ItemMaterial.SiliconPress.name=Karcolt Szilikon Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.SiliconPress.name=Vésett Szilikon Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.SiliconPrint.name=Nyomtatott Szilikon
|
||||
item.appliedenergistics2.ItemMaterial.NamePress.name=Karcolt Név Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.SkyDust.name=Égboltkő por
|
||||
item.appliedenergistics2.ItemMaterial.CardCrafting.name=Craftoló Kártya
|
||||
item.appliedenergistics2.ItemMaterial.NamePress.name=Név Nyomat
|
||||
item.appliedenergistics2.ItemMaterial.SkyDust.name=Égboltkő Por
|
||||
item.appliedenergistics2.ItemMaterial.CardCrafting.name=Barkácsoló Kártya
|
||||
|
||||
item.appliedenergistics2.ItemPart.AnnihilationPlane.name=ME Megsemmisítő Lap
|
||||
item.appliedenergistics2.ItemPart.IdentityAnnihilationPlane.name=ME Identitás Megsemmisítő Lap
|
||||
item.appliedenergistics2.ItemPart.CableAnchor.name=Kábel Távtartó
|
||||
item.appliedenergistics2.ItemPart.CableCovered.name=ME Szigetelt Kábel
|
||||
item.appliedenergistics2.ItemPart.CableGlass.name=ME Üveg Kábel
|
||||
item.appliedenergistics2.ItemPart.CableSmart.name=ME Okos Kábel
|
||||
item.appliedenergistics2.ItemPart.CableDense.name=ME Sűrű Kábel
|
||||
item.appliedenergistics2.ItemPart.StorageMonitor.name=ME Tároló Monitor
|
||||
item.appliedenergistics2.ItemPart.ConversionMonitor.name=ME Átváltó Monitor
|
||||
item.appliedenergistics2.ItemPart.CraftingTerminal.name=ME Craftoló Terminal
|
||||
item.appliedenergistics2.ItemPart.ConversionMonitor.name=ME Átváltási Monitor
|
||||
item.appliedenergistics2.ItemPart.CraftingTerminal.name=ME Barkácsoló Terminal
|
||||
item.appliedenergistics2.ItemPart.SemiDarkMonitor.name=Kivilágított Lap
|
||||
item.appliedenergistics2.ItemPart.Monitor.name=Fényes Kivilágított Lap
|
||||
item.appliedenergistics2.ItemPart.DarkMonitor.name=Sötét Kivilágított Lap
|
||||
item.appliedenergistics2.ItemPart.ExportBus.name=ME Export Busz
|
||||
item.appliedenergistics2.ItemPart.FormationPlane.name=ME Formation Lap
|
||||
item.appliedenergistics2.ItemPart.FormationPlane.name=ME Kialakító Lap
|
||||
item.appliedenergistics2.ItemPart.ImportBus.name=ME Import Busz
|
||||
item.appliedenergistics2.ItemPart.Interface.name=ME Interface
|
||||
item.appliedenergistics2.ItemPart.LevelEmitter.name=ME Level Emitter
|
||||
item.appliedenergistics2.ItemPart.P2PTunnel.name=P2P Alagut
|
||||
item.appliedenergistics2.ItemPart.PatternTerminal.name=ME Minta Terminal
|
||||
item.appliedenergistics2.ItemPart.QuartzFiber.name=Kvarc Szálas
|
||||
item.appliedenergistics2.ItemPart.Interface.name=ME Interfész
|
||||
item.appliedenergistics2.ItemPart.LevelEmitter.name=ME Szint Kibocsátó
|
||||
item.appliedenergistics2.ItemPart.P2PTunnel.name=P2P Alagút
|
||||
item.appliedenergistics2.ItemPart.PatternTerminal.name=ME Minta Terminál
|
||||
item.appliedenergistics2.ItemPart.QuartzFiber.name=Kvarc Rost
|
||||
item.appliedenergistics2.ItemPart.StorageBus.name=ME Tároló Busz
|
||||
item.appliedenergistics2.ItemPart.Terminal.name=ME Terminal
|
||||
item.appliedenergistics2.ItemPart.InvertedToggleBus.name=ME Inverted Toggle Busz
|
||||
item.appliedenergistics2.ItemPart.ToggleBus.name=ME Toggle Busz
|
||||
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME Craftoló Monitor
|
||||
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME Interface Terminal
|
||||
item.appliedenergistics2.ItemPart.Terminal.name=ME Terminál
|
||||
item.appliedenergistics2.ItemPart.InvertedToggleBus.name=ME Invertált Kapcsoló Busz
|
||||
item.appliedenergistics2.ItemPart.ToggleBus.name=ME Kapcsoló Busz
|
||||
item.appliedenergistics2.ItemPart.CraftingMonitor.name=ME Barkácsoló Monitor
|
||||
item.appliedenergistics2.ItemPart.InterfaceTerminal.name=ME Interfész Terminál
|
||||
item.appliedenergistics2.ItemPart.InvalidType.name=Tiltott Tárgy
|
||||
|
||||
item.appliedenergistics2.ItemSpatialStorageCell.128Cubed.name=128³ Térbeli Tároló Cella
|
||||
item.appliedenergistics2.ItemSpatialStorageCell.16Cubed.name=16³ Térbeli Tároló Cella
|
||||
item.appliedenergistics2.ItemSpatialStorageCell.2Cubed.name=2³ Térbeli Tároló Cella
|
||||
|
||||
item.appliedenergistics2.ToolCertusQuartzAxe.name=Certus Kvarc Fejsze
|
||||
item.appliedenergistics2.ToolCertusQuartzCuttingKnife.name=Certus Kvarc Vágó Kés
|
||||
item.appliedenergistics2.ToolCertusQuartzCuttingKnife.name=Certus Kvarc Vágókés
|
||||
item.appliedenergistics2.ToolCertusQuartzHoe.name=Certus Kvarc Kapa
|
||||
item.appliedenergistics2.ToolCertusQuartzPickaxe.name=Certus Kvarc Csákány
|
||||
item.appliedenergistics2.ToolCertusQuartzSpade.name=Certus Kvarc Ásó
|
||||
@@ -399,7 +476,7 @@ item.appliedenergistics2.ToolCertusQuartzSword.name=Certus Kvarc Kard
|
||||
item.appliedenergistics2.ToolCertusQuartzWrench.name=Certus Kvarc Franciakulcs
|
||||
|
||||
item.appliedenergistics2.ToolNetherQuartzAxe.name=Alvilági Kvarc Fejsze
|
||||
item.appliedenergistics2.ToolNetherQuartzCuttingKnife.name=Alvilági Kvarc Vágó Kés
|
||||
item.appliedenergistics2.ToolNetherQuartzCuttingKnife.name=Alvilági Kvarc Vágókés
|
||||
item.appliedenergistics2.ToolNetherQuartzHoe.name=Alvilági Kvarc Kapa
|
||||
item.appliedenergistics2.ToolNetherQuartzPickaxe.name=Alvilági Kvarc Csákány
|
||||
item.appliedenergistics2.ToolNetherQuartzSpade.name=Alvilági Kvarc Ásó
|
||||
@@ -407,15 +484,80 @@ item.appliedenergistics2.ToolNetherQuartzSword.name=Alvilági Kvarc Kard
|
||||
item.appliedenergistics2.ToolNetherQuartzWrench.name=Alvilági Kvarc Franciakulcs
|
||||
|
||||
item.appliedenergistics2.ItemPaintBall.name=Festék Labda
|
||||
item.appliedenergistics2.ToolPortableCell.name=Portable Cell
|
||||
item.appliedenergistics2.ToolPortableCell.name=Hordozható Cella
|
||||
item.appliedenergistics2.ToolNetworkTool.name=Hálózati Eszköz
|
||||
item.appliedenergistics2.ToolChargedStaff.name=Feltöltött Bot
|
||||
item.appliedenergistics2.ToolEntropyManipulator.name=Entropy Manipulator
|
||||
item.appliedenergistics2.ToolChargedStaff.name=Feltöltött Pálca
|
||||
item.appliedenergistics2.ToolEntropyManipulator.name=Bomlás Manipuláló
|
||||
item.appliedenergistics2.ToolMassCannon.name=Anyag Ágyú
|
||||
item.appliedenergistics2.ToolMemoryCard.name=Memória Kártya
|
||||
item.appliedenergistics2.ToolColorApplicator.name=Color Applicator
|
||||
item.appliedenergistics2.ToolWirelessTerminal.name=Wireless Terminal
|
||||
item.appliedenergistics2.ToolColorApplicator.name=Szín Alkalmazó
|
||||
item.appliedenergistics2.ToolWirelessTerminal.name=Vezetéknélküli Terminál
|
||||
item.appliedenergistics2.ToolBiometricCard.name=Biometrikus Kártya
|
||||
|
||||
item.appliedenergistics2.ToolDebugCard.name=Dev.DebugCard
|
||||
item.appliedenergistics2.ToolReplicatorCard.name=Dev.ReplicatorCard
|
||||
item.appliedenergistics2.ToolDebugCard.name=Dev.Debug Kártya
|
||||
item.appliedenergistics2.ToolReplicatorCard.name=Dev.Replikátor Kártya
|
||||
|
||||
// Commands
|
||||
commands.ae2.usage=Applied Energistics 2 által nyújtott parancsok - Használd az /ae2 list parancsot hogy kilistázza őket, és az /ae2 help _____ parancsot a segítséghez.
|
||||
commands.ae2.permissions=Nincs elegendő engedélyed hogy futtasd ezt a parancsot.
|
||||
commands.ae2.ChunkLogger=Állítgatja a Darabka betöltési és kitöltési naplót ( OP )
|
||||
commands.ae2.ChunkLoggerOn=Darabka naplózás bekapcsolva
|
||||
commands.ae2.ChunkLoggerOff=Darabka naplózás kikapcsolva
|
||||
commands.ae2.Supporters=Megjelenít egy listát az AE2-höz hozzájárulókról
|
||||
|
||||
// Achievements
|
||||
achievement.ae2.Compass=Meteorit vadász
|
||||
achievement.ae2.Compass.desc=Készíts egy Meteor Iránytűt
|
||||
achievement.ae2.Presses=Ismeretlen technológia
|
||||
achievement.ae2.Presses.desc=Találj egy Processzor lenyomatot
|
||||
achievement.ae2.SpatialIO=Térbeli koordináció
|
||||
achievement.ae2.SpatialIO.desc=Készíts egy Tér-IO portot
|
||||
achievement.ae2.SpatialIOExplorer=Ahol még ember nem járt
|
||||
achievement.ae2.SpatialIOExplorer.desc=Legyél tárolva egy Térbeli Tároló Cellában
|
||||
achievement.ae2.StorageCell=Jobb mint a ládák
|
||||
achievement.ae2.StorageCell.desc=Készíts egy Tároló Cellát
|
||||
achievement.ae2.IOPort=Tároló Cella keverés
|
||||
achievement.ae2.IOPort.desc=Készíts egy ME IO Portot
|
||||
achievement.ae2.CraftingTerminal=Egy (sokkal) nagyobb asztal
|
||||
achievement.ae2.CraftingTerminal.desc=Készíts egy Barkácsoló Terminált
|
||||
achievement.ae2.PatternTerminal=Barkácsoló Maestro
|
||||
achievement.ae2.PatternTerminal.desc=Készíts egy Minta Terminált
|
||||
achievement.ae2.ChargedQuartz=Megrázó
|
||||
achievement.ae2.ChargedQuartz.desc=Találj Töltött Kvarcot
|
||||
achievement.ae2.Fluix=Természetellenes
|
||||
achievement.ae2.Fluix.desc=Készíts Fluix Kristályokat
|
||||
achievement.ae2.Charger=Fluix készítés
|
||||
achievement.ae2.Charger.desc=Készíts egy Töltőt
|
||||
achievement.ae2.CrystalGrowthAccelerator=A Gyorsító egy alábecslés
|
||||
achievement.ae2.CrystalGrowthAccelerator.desc=Készíts egy Krisztály Növekedés Gyorsítót
|
||||
achievement.ae2.GlassCable=Fluix Energia Kapcsolat
|
||||
achievement.ae2.GlassCable.desc=Készíts ME Üveg Kábelt
|
||||
achievement.ae2.Networking1=Hálózati tanonc
|
||||
achievement.ae2.Networking1.desc=Érj el 8 csatornát egy hálózaton akármivel.
|
||||
achievement.ae2.Controller=Hálózati kapcsolótábla
|
||||
achievement.ae2.Controller.desc=Készíts egy Vezérlőt
|
||||
achievement.ae2.Networking2=Hálózati Mérnök
|
||||
achievement.ae2.Networking2.desc=Érj el 128 csatornát a hálózaton akármivel.
|
||||
achievement.ae2.Networking3=Hálózat Adminisztrátor
|
||||
achievement.ae2.Networking3.desc=Érj el 2048 csatornát a hálózaton akármivel.
|
||||
achievement.ae2.P2P=Ponttol pontig hálózat
|
||||
achievement.ae2.P2P.desc=Készíts egy P2P Alagutat
|
||||
achievement.ae2.Recursive=Rekurzív Hálózat
|
||||
achievement.ae2.Recursive.desc=Helyezz egy Interfészt egy Tároló Buszra.
|
||||
achievement.ae2.CraftingCPU=Next Gen Barkácsolás
|
||||
achievement.ae2.CraftingCPU.desc=Készíts egy Barkácsoló Egységet
|
||||
achievement.ae2.Facade=Hálózati esztétika
|
||||
achievement.ae2.Facade.desc=Készíts egy kábel látszatot
|
||||
achievement.ae2.NetworkTool=Hálózat diagnosztika
|
||||
achievement.ae2.NetworkTool.desc=Készíts egy Hálózati Eszközt
|
||||
achievement.ae2.PortableCell=Tárolási Nomád
|
||||
achievement.ae2.PortableCell.desc=Készíts egy Hordozható Tárolót
|
||||
achievement.ae2.StorageBus=Határtalan potenciál
|
||||
achievement.ae2.StorageBus.desc=Készíts egy Tároló Buszt
|
||||
achievement.ae2.QNB=Kvantum Alagutazás
|
||||
achievement.ae2.QNB.desc=Készíts egy Kvantum Összeköttetést.
|
||||
|
||||
// Stats
|
||||
stat.ae2.ItemsInserted=Tárgyak hozzáadva ME tárolókhoz
|
||||
stat.ae2.ItemsExtracted=Tárgyak eltávolítva ME tárolókból
|
||||
stat.ae2.TurnedCranks=Kurblik forgatva
|
||||
|
||||
Reference in New Issue
Block a user