Compare commits
53 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d11d6e754f | |||
| 887339f7b8 | |||
| a665200c31 | |||
| 6554e295d5 | |||
| 4eeb554dcb | |||
| 3eae4a7d19 | |||
| 6c91e852ec | |||
| 52f516299b | |||
| c74166b02a | |||
| 26e86a114c | |||
| fc834036a0 | |||
| f96f7d82c5 | |||
| c592f54a77 | |||
| 89609a83ea | |||
| e67969f52f | |||
| 32a0496bc2 | |||
| 6df311c11a | |||
| 2e23b92763 | |||
| 41a029ffb4 | |||
| 9c8f914f42 | |||
| d75cdc9696 | |||
| 77bb28ded6 | |||
| 0e7981d717 | |||
| fbb0c05c7f | |||
| efa0ab7e4e | |||
| 70fe5189e0 | |||
| 3a8d6d0bcd | |||
| 7ac817e9ae | |||
| 0ceb4765a2 | |||
| 7ce9654402 | |||
| 5328627d7a | |||
| fe1a67ffaa | |||
| 4253d659f1 | |||
| b3560aaa00 | |||
| 005392911d | |||
| 7f02562e0c | |||
| 84bc00fa20 | |||
| c1483d87c7 | |||
| f5e4a202cb | |||
| 6f15c2921a | |||
| d891e5da15 | |||
| 6607c8cd2f | |||
| 1e20086799 | |||
| f85ab7ddc2 | |||
| c3700737c3 | |||
| 2f8013a49b | |||
| af54883fd3 | |||
| 223a210d49 | |||
| c133e4f0ef | |||
| 424d27b71c | |||
| 2fe5a3cef8 | |||
| a3c33d5323 | |||
| e927c27b85 |
+4
-1
@@ -25,4 +25,7 @@
|
|||||||
!codeformat/
|
!codeformat/
|
||||||
|
|
||||||
# Github specific files and directories
|
# Github specific files and directories
|
||||||
!.github/
|
!.github/
|
||||||
|
|
||||||
|
# Explicit ignores
|
||||||
|
Thumbs.db
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
[](https://travis-ci.org/AppliedEnergistics/Applied-Energistics-2)
|
[](https://travis-ci.org/AppliedEnergistics/Applied-Energistics-2)
|
||||||
[](https://github.com/AppliedEnergistics/Applied-Energistics-2/tags)
|
|
||||||
[](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases)
|
[](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases)
|
||||||
|
|
||||||
# Applied Energistics 2
|
# Applied Energistics 2
|
||||||
@@ -104,7 +103,7 @@ Providing as many details as possible does help us to find and resolve the issue
|
|||||||
- Eclipse: execute `gradlew eclipse`
|
- Eclipse: execute `gradlew eclipse`
|
||||||
5. For add-on developer: Core-Mod Detection
|
5. For add-on developer: Core-Mod Detection
|
||||||
- In order to have FML detect AE from your dev environment, add the following VM Option to your run profile
|
- In order to have FML detect AE from your dev environment, add the following VM Option to your run profile
|
||||||
- `-Dfml.coreMods.load=appeng.transformer.AppEngCore`
|
- `-Dfml.coreMods.load=appeng.coremod.AppEngCore`
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
|||||||
+22
-20
@@ -40,7 +40,6 @@ repositories {
|
|||||||
|
|
||||||
apply from: 'gradle/scripts/dependencies.gradle'
|
apply from: 'gradle/scripts/dependencies.gradle'
|
||||||
apply from: 'gradle/scripts/artifacts.gradle'
|
apply from: 'gradle/scripts/artifacts.gradle'
|
||||||
apply from: 'gradle/scripts/integration.gradle'
|
|
||||||
apply from: 'gradle/scripts/optional.gradle'
|
apply from: 'gradle/scripts/optional.gradle'
|
||||||
|
|
||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||||
@@ -54,17 +53,22 @@ archivesBaseName = aebasename
|
|||||||
jar {
|
jar {
|
||||||
manifest {
|
manifest {
|
||||||
attributes 'FMLCorePluginContainsFMLMod': 'true'
|
attributes 'FMLCorePluginContainsFMLMod': 'true'
|
||||||
|
attributes 'FMLAT': 'appeng_at.cfg'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
from sourceSets.api.output
|
||||||
|
dependsOn apiClasses
|
||||||
|
|
||||||
// specify which files are really included, can control which APIs should be in
|
// specify which files are really included, can control which APIs should be in
|
||||||
include "appeng/**"
|
include "appeng/**"
|
||||||
include "assets/**"
|
include "assets/**"
|
||||||
include "mcmod.info"
|
include "mcmod.info"
|
||||||
include "pack.mcmeta"
|
include "pack.mcmeta"
|
||||||
|
include "META-INF/appeng_at.cfg"
|
||||||
}
|
}
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
coreMod = "appeng.transformer.AppEngCore"
|
coreMod = "appeng.coremod.AppEngCore"
|
||||||
|
|
||||||
version = minecraft_version + "-" + forge_version
|
version = minecraft_version + "-" + forge_version
|
||||||
|
|
||||||
@@ -82,26 +86,21 @@ minecraft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
|
||||||
java {
|
|
||||||
srcDirs += 'src/api/java'
|
|
||||||
srcDirs += 'src/main/java/'
|
|
||||||
}
|
|
||||||
|
|
||||||
resources {
|
api
|
||||||
srcDir "src/main/resources/"
|
|
||||||
include "assets/appliedenergistics2/recipes/**/*.recipe",
|
// This source set will contain third party API code that we need to compile, but which is not shipped with the jar
|
||||||
"assets/appliedenergistics2/recipes/README.html",
|
thirdparty {
|
||||||
"assets/appliedenergistics2/lang/*.lang",
|
// Third Party APIs often need access to Minecraft classes (i.e. EnumFacing), so set this up here
|
||||||
"assets/appliedenergistics2/blockstates/**/*.json",
|
compileClasspath += configurations.forgeGradleMc + configurations.forgeGradleMcDeps
|
||||||
"assets/appliedenergistics2/models/**/*.json",
|
|
||||||
"assets/appliedenergistics2/textures/**/*.png",
|
|
||||||
"assets/appliedenergistics2/textures/**/*.mcmeta",
|
|
||||||
"assets/appliedenergistics2/meta/*",
|
|
||||||
"mcmod.info",
|
|
||||||
"pack.mcmeta"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile sourceSets.thirdparty.output
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources
|
processResources
|
||||||
@@ -120,4 +119,7 @@ processResources
|
|||||||
from(sourceSets.main.resources.srcDirs) {
|
from(sourceSets.main.resources.srcDirs) {
|
||||||
exclude 'mcmod.info'
|
exclude 'mcmod.info'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// move access transformer to META-INF
|
||||||
|
rename '(.+_at.cfg)', 'META-INF/$1'
|
||||||
}
|
}
|
||||||
+5
-5
@@ -8,8 +8,8 @@ aebasename=appliedenergistics2
|
|||||||
# Versions #
|
# Versions #
|
||||||
#########################################################
|
#########################################################
|
||||||
minecraft_version=1.10.2
|
minecraft_version=1.10.2
|
||||||
mcp_mappings=snapshot_20161018
|
mcp_mappings=snapshot_20161111
|
||||||
forge_version=12.18.2.2104
|
forge_version=12.18.2.2139
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Installable #
|
# Installable #
|
||||||
@@ -19,6 +19,6 @@ waila_version=1.7.0-B3_1.9.4
|
|||||||
#########################################################
|
#########################################################
|
||||||
# Provided APIs #
|
# Provided APIs #
|
||||||
#########################################################
|
#########################################################
|
||||||
jei_version=3.12.7.312
|
jei_version=3.13.3.373
|
||||||
tesla_version=1.10.2-1.2.1.49
|
tesla_version=1.10.2-1.2.1.50
|
||||||
ic2_version=2.6.96-ex110
|
ic2_version=2.6.99-ex110
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ task apiJar(type: Jar) {
|
|||||||
from sourceSets.api.java
|
from sourceSets.api.java
|
||||||
include "appeng/api/**"
|
include "appeng/api/**"
|
||||||
|
|
||||||
from sourceSets.main.output
|
from sourceSets.api.output
|
||||||
include "appeng/api/**"
|
include "appeng/api/**"
|
||||||
|
|
||||||
classifier = 'api'
|
classifier = 'api'
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Applied Energistics 2.
|
|
||||||
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
|
|
||||||
*
|
|
||||||
* Applied Energistics 2 is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Applied Energistics 2 is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Should be provided by ForgeGradle, some idea user should confirm it.
|
|
||||||
apply plugin: 'idea'
|
|
||||||
|
|
||||||
idea {
|
|
||||||
module {
|
|
||||||
inheritOutputDirs = true
|
|
||||||
|
|
||||||
// excludes integration due to not being available upon port
|
|
||||||
excludeDirs += file('src/main/java/appeng/parts/layers/')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -78,7 +78,7 @@ public interface IParts
|
|||||||
|
|
||||||
IItemDefinition p2PTunnelLiquids();
|
IItemDefinition p2PTunnelLiquids();
|
||||||
|
|
||||||
// IItemDefinition p2PTunnelEU();
|
IItemDefinition p2PTunnelEU();
|
||||||
|
|
||||||
// IItemDefinition p2PTunnelRF();
|
// IItemDefinition p2PTunnelRF();
|
||||||
|
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements ITileEntity
|
|||||||
|
|
||||||
for( final ItemStack ol : itemDropCandidates )
|
for( final ItemStack ol : itemDropCandidates )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemType( ol, op ) )
|
if( Platform.itemComparisons().isEqualItemType( ol, op ) )
|
||||||
{
|
{
|
||||||
final NBTTagCompound tag = tile.downloadSettings( SettingsFrom.DISMANTLE_ITEM );
|
final NBTTagCompound tag = tile.downloadSettings( SettingsFrom.DISMANTLE_ITEM );
|
||||||
if( tag != null )
|
if( tag != null )
|
||||||
|
|||||||
@@ -75,10 +75,22 @@ public class BlockMolecularAssembler extends AEBaseTileBlock
|
|||||||
return super.getActualState( state, worldIn, pos ).withProperty( POWERED, powered );
|
return super.getActualState( state, worldIn, pos ).withProperty( POWERED, powered );
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly( Side.CLIENT)
|
/**
|
||||||
|
* NOTE: This is only used to determine how to render an item being held in hand.
|
||||||
|
* For determining block rendering, the method below is used (canRenderInLayer).
|
||||||
|
*/
|
||||||
|
@SideOnly( Side.CLIENT )
|
||||||
|
@Override
|
||||||
public BlockRenderLayer getBlockLayer()
|
public BlockRenderLayer getBlockLayer()
|
||||||
{
|
{
|
||||||
return BlockRenderLayer.TRANSLUCENT;
|
return BlockRenderLayer.CUTOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly( Side.CLIENT )
|
||||||
|
@Override
|
||||||
|
public boolean canRenderInLayer( BlockRenderLayer layer )
|
||||||
|
{
|
||||||
|
return layer == BlockRenderLayer.TRANSLUCENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFullCube(IBlockState state)
|
public boolean isFullCube(IBlockState state)
|
||||||
|
|||||||
@@ -45,6 +45,6 @@ public class ItemCraftingStorage extends AEBaseItemBlock
|
|||||||
@Override
|
@Override
|
||||||
public boolean hasContainerItem( final ItemStack stack )
|
public boolean hasContainerItem( final ItemStack stack )
|
||||||
{
|
{
|
||||||
return AEConfig.instance.isFeatureEnabled( AEFeature.EnableDisassemblyCrafting );
|
return AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_DISASSEMBLY_CRAFTING );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision
|
|||||||
@SideOnly( Side.CLIENT )
|
@SideOnly( Side.CLIENT )
|
||||||
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.enableEffects )
|
if( !AEConfig.instance().isEnableEffects() )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ public class BlockQuartzFixture extends AEBaseBlock implements IOrientableBlock,
|
|||||||
@SideOnly( Side.CLIENT )
|
@SideOnly( Side.CLIENT )
|
||||||
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.enableEffects )
|
if( !AEConfig.instance().isEnableEffects() )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr
|
|||||||
@Override
|
@Override
|
||||||
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.enableEffects )
|
if( !AEConfig.instance().isEnableEffects() )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public final class BlockVibrationChamber extends AEBaseTileBlock
|
|||||||
@Override
|
@Override
|
||||||
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
public void randomDisplayTick( final IBlockState state, final World w, final BlockPos pos, final Random r )
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.enableEffects )
|
if( !AEConfig.instance().isEnableEffects() )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,9 +69,6 @@ import appeng.client.render.cablebus.CableBusRenderState;
|
|||||||
import appeng.core.Api;
|
import appeng.core.Api;
|
||||||
import appeng.core.AppEng;
|
import appeng.core.AppEng;
|
||||||
import appeng.helpers.AEGlassMaterial;
|
import appeng.helpers.AEGlassMaterial;
|
||||||
import appeng.integration.IntegrationRegistry;
|
|
||||||
import appeng.integration.IntegrationType;
|
|
||||||
import appeng.integration.abstraction.IFMP;
|
|
||||||
import appeng.parts.ICableBusContainer;
|
import appeng.parts.ICableBusContainer;
|
||||||
import appeng.parts.NullCableBusContainer;
|
import appeng.parts.NullCableBusContainer;
|
||||||
import appeng.tile.AEBaseTile;
|
import appeng.tile.AEBaseTile;
|
||||||
@@ -349,10 +346,6 @@ public class BlockCableBus extends AEBaseTileBlock
|
|||||||
{
|
{
|
||||||
out = ( (TileCableBus) te ).getCableBus();
|
out = ( (TileCableBus) te ).getCableBus();
|
||||||
}
|
}
|
||||||
else if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.FMP ) )
|
|
||||||
{
|
|
||||||
out = ( (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP ) ).getCableContainer( te );
|
|
||||||
}
|
|
||||||
|
|
||||||
return out == null ? NULL_CABLE_BUS : out;
|
return out == null ? NULL_CABLE_BUS : out;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
|||||||
@Override
|
@Override
|
||||||
public <T extends IBlockDefinition> T build()
|
public <T extends IBlockDefinition> T build()
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.areFeaturesEnabled( features ) )
|
if( !AEConfig.instance().areFeaturesEnabled( features ) )
|
||||||
{
|
{
|
||||||
return (T) new TileDefinition( registryName, null, null );
|
return (T) new TileDefinition( registryName, null, null );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class FeatureFactory
|
|||||||
|
|
||||||
public FeatureFactory()
|
public FeatureFactory()
|
||||||
{
|
{
|
||||||
this.defaultFeatures = new AEFeature[] { AEFeature.Core };
|
this.defaultFeatures = new AEFeature[] { AEFeature.CORE };
|
||||||
this.bootstrapComponents = new ArrayList<>();
|
this.bootstrapComponents = new ArrayList<>();
|
||||||
|
|
||||||
if( Platform.isClient() )
|
if( Platform.isClient() )
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ class ItemDefinitionBuilder implements IItemBuilder
|
|||||||
@Override
|
@Override
|
||||||
public ItemDefinition build()
|
public ItemDefinition build()
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.areFeaturesEnabled( features ) )
|
if( !AEConfig.instance().areFeaturesEnabled( features ) )
|
||||||
{
|
{
|
||||||
return new ItemDefinition( registryName, null );
|
return new ItemDefinition( registryName, null );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ import appeng.core.CommonHelper;
|
|||||||
import appeng.core.sync.network.NetworkHandler;
|
import appeng.core.sync.network.NetworkHandler;
|
||||||
import appeng.core.sync.packets.PacketAssemblerAnimation;
|
import appeng.core.sync.packets.PacketAssemblerAnimation;
|
||||||
import appeng.core.sync.packets.PacketValueConfig;
|
import appeng.core.sync.packets.PacketValueConfig;
|
||||||
|
import appeng.coremod.MissingCoreMod;
|
||||||
import appeng.entity.EntityFloatingItem;
|
import appeng.entity.EntityFloatingItem;
|
||||||
import appeng.entity.EntityTinyTNTPrimed;
|
import appeng.entity.EntityTinyTNTPrimed;
|
||||||
import appeng.entity.RenderFloatingItem;
|
import appeng.entity.RenderFloatingItem;
|
||||||
@@ -70,7 +71,6 @@ import appeng.helpers.IMouseWheelItem;
|
|||||||
import appeng.hooks.TickHandler;
|
import appeng.hooks.TickHandler;
|
||||||
import appeng.hooks.TickHandler.PlayerColor;
|
import appeng.hooks.TickHandler.PlayerColor;
|
||||||
import appeng.server.ServerHelper;
|
import appeng.server.ServerHelper;
|
||||||
import appeng.transformer.MissingCoreMod;
|
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ public class ClientHelper extends ServerHelper
|
|||||||
@Override
|
@Override
|
||||||
public void spawnEffect( final EffectType effect, final World worldObj, final double posX, final double posY, final double posZ, final Object o )
|
public void spawnEffect( final EffectType effect, final World worldObj, final double posX, final double posY, final double posZ, final Object o )
|
||||||
{
|
{
|
||||||
if( AEConfig.instance.enableEffects )
|
if( AEConfig.instance().isEnableEffects() )
|
||||||
{
|
{
|
||||||
switch( effect )
|
switch( effect )
|
||||||
{
|
{
|
||||||
@@ -354,7 +354,7 @@ public class ClientHelper extends ServerHelper
|
|||||||
final ItemStack is = player.getHeldItem( hand );
|
final ItemStack is = player.getHeldItem( hand );
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "Item", me.getDwheel() > 0 ? "WheelUp" : "WheelDown" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "Item", me.getDwheel() > 0 ? "WheelUp" : "WheelDown" ) );
|
||||||
me.setCanceled( true );
|
me.setCanceled( true );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
|
|||||||
@@ -161,12 +161,6 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
{
|
{
|
||||||
super.drawScreen( mouseX, mouseY, btn );
|
super.drawScreen( mouseX, mouseY, btn );
|
||||||
|
|
||||||
final boolean hasClicked = Mouse.isButtonDown( 0 );
|
|
||||||
if( hasClicked && this.getScrollBar() != null )
|
|
||||||
{
|
|
||||||
this.getScrollBar().click( this, mouseX - this.guiLeft, mouseY - this.guiTop );
|
|
||||||
}
|
|
||||||
|
|
||||||
for( final Object c : this.buttonList )
|
for( final Object c : this.buttonList )
|
||||||
{
|
{
|
||||||
if( c instanceof ITooltip )
|
if( c instanceof ITooltip )
|
||||||
@@ -217,7 +211,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
// All lines after the first are colored gray
|
// All lines after the first are colored gray
|
||||||
for( int i = 1; i < lines.size(); i++ )
|
for( int i = 1; i < lines.size(); i++ )
|
||||||
{
|
{
|
||||||
lines.set(i, TextFormatting.GRAY + lines.get(i));
|
lines.set( i, TextFormatting.GRAY + lines.get( i ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.drawHoveringText( lines, x, y, fontRendererObj );
|
this.drawHoveringText( lines, x, y, fontRendererObj );
|
||||||
@@ -258,13 +252,15 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
{
|
{
|
||||||
if( fs.isEnabled() )
|
if( fs.isEnabled() )
|
||||||
{
|
{
|
||||||
this.drawTexturedModalRect( ox + fs.xDisplayPosition - 1, oy + fs.yDisplayPosition - 1, fs.getSourceX() - 1, fs.getSourceY() - 1, 18, 18 );
|
this.drawTexturedModalRect( ox + fs.xDisplayPosition - 1, oy + fs.yDisplayPosition - 1, fs.getSourceX() - 1, fs.getSourceY() - 1, 18,
|
||||||
|
18 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GlStateManager.color( 1.0F, 1.0F, 1.0F, 0.4F );
|
GlStateManager.color( 1.0F, 1.0F, 1.0F, 0.4F );
|
||||||
GlStateManager.enableBlend();
|
GlStateManager.enableBlend();
|
||||||
this.drawTexturedModalRect( ox + fs.xDisplayPosition - 1, oy + fs.yDisplayPosition - 1, fs.getSourceX() - 1, fs.getSourceY() - 1, 18, 18 );
|
this.drawTexturedModalRect( ox + fs.xDisplayPosition - 1, oy + fs.yDisplayPosition - 1, fs.getSourceX() - 1, fs.getSourceY() - 1, 18,
|
||||||
|
18 );
|
||||||
GlStateManager.color( 1.0F, 1.0F, 1.0F, 1.0F );
|
GlStateManager.color( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -290,6 +286,11 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( this.getScrollBar() != null )
|
||||||
|
{
|
||||||
|
this.getScrollBar().click( this, xCoord - this.guiLeft, yCoord - this.guiTop );
|
||||||
|
}
|
||||||
|
|
||||||
super.mouseClicked( xCoord, yCoord, btn );
|
super.mouseClicked( xCoord, yCoord, btn );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,6 +300,11 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
final Slot slot = this.getSlot( x, y );
|
final Slot slot = this.getSlot( x, y );
|
||||||
final ItemStack itemstack = this.mc.thePlayer.inventory.getItemStack();
|
final ItemStack itemstack = this.mc.thePlayer.inventory.getItemStack();
|
||||||
|
|
||||||
|
if( this.getScrollBar() != null )
|
||||||
|
{
|
||||||
|
this.getScrollBar().click( this, x - this.guiLeft, y - this.guiTop );
|
||||||
|
}
|
||||||
|
|
||||||
if( slot instanceof SlotFake && itemstack != null )
|
if( slot instanceof SlotFake && itemstack != null )
|
||||||
{
|
{
|
||||||
this.drag_click.add( slot );
|
this.drag_click.add( slot );
|
||||||
@@ -307,7 +313,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
for( final Slot dr : this.drag_click )
|
for( final Slot dr : this.drag_click )
|
||||||
{
|
{
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( c == 0 ? InventoryAction.PICKUP_OR_SET_DOWN : InventoryAction.PLACE_SINGLE, dr.slotNumber, 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( c == 0 ? InventoryAction.PICKUP_OR_SET_DOWN : InventoryAction.PLACE_SINGLE, dr.slotNumber, 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -317,7 +323,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO 1.9.4 aftermath - Whole ClickType thing, to be checked.
|
// TODO 1.9.4 aftermath - Whole ClickType thing, to be checked.
|
||||||
@Override
|
@Override
|
||||||
protected void handleMouseClick( final Slot slot, final int slotIdx, final int mouseButton, final ClickType clickType )
|
protected void handleMouseClick( final Slot slot, final int slotIdx, final int mouseButton, final ClickType clickType )
|
||||||
{
|
{
|
||||||
@@ -325,7 +331,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
|
|
||||||
if( slot instanceof SlotFake )
|
if( slot instanceof SlotFake )
|
||||||
{
|
{
|
||||||
final InventoryAction action = isCtrlKeyDown() ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
final InventoryAction action = mouseButton == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
||||||
|
|
||||||
if( this.drag_click.size() > 1 )
|
if( this.drag_click.size() > 1 )
|
||||||
{
|
{
|
||||||
@@ -333,7 +339,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
}
|
}
|
||||||
|
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( action, slotIdx, 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( action, slotIdx, 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -347,7 +353,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( ( (SlotPatternTerm) slot ).getRequest( isShiftKeyDown() ) );
|
NetworkHandler.instance().sendToServer( ( (SlotPatternTerm) slot ).getRequest( isShiftKeyDown() ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -369,11 +375,11 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Craft stack on right-click, craft single on left-click
|
// Craft stack on right-click, craft single on left-click
|
||||||
action = (mouseButton == 1) ? InventoryAction.CRAFT_STACK : InventoryAction.CRAFT_ITEM;
|
action = ( mouseButton == 1 ) ? InventoryAction.CRAFT_STACK : InventoryAction.CRAFT_ITEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( action, slotIdx, 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( action, slotIdx, 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -397,7 +403,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
|
|
||||||
( (AEBaseContainer) this.inventorySlots ).setTargetStack( stack );
|
( (AEBaseContainer) this.inventorySlots ).setTargetStack( stack );
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( InventoryAction.MOVE_REGION, slotNum, 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( InventoryAction.MOVE_REGION, slotNum, 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -409,10 +415,10 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
switch( clickType )
|
switch( clickType )
|
||||||
{
|
{
|
||||||
case PICKUP: // pickup / set-down.
|
case PICKUP: // pickup / set-down.
|
||||||
action = (mouseButton == 1) ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
action = ( mouseButton == 1 ) ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
||||||
break;
|
break;
|
||||||
case QUICK_MOVE:
|
case QUICK_MOVE:
|
||||||
action = isCtrlKeyDown() ? InventoryAction.PICKUP_SINGLE : InventoryAction.SHIFT_CLICK;
|
action = ( mouseButton == 1 ) ? InventoryAction.PICKUP_SINGLE : InventoryAction.SHIFT_CLICK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CLONE: // creative dupe:
|
case CLONE: // creative dupe:
|
||||||
@@ -431,7 +437,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
if( action != null )
|
if( action != null )
|
||||||
{
|
{
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( action, slot.getSlotIndex(), ( (SlotDisconnected) slot ).getSlot().getId() );
|
final PacketInventoryAction p = new PacketInventoryAction( action, slot.getSlotIndex(), ( (SlotDisconnected) slot ).getSlot().getId() );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -445,7 +451,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
switch( clickType )
|
switch( clickType )
|
||||||
{
|
{
|
||||||
case PICKUP: // pickup / set-down.
|
case PICKUP: // pickup / set-down.
|
||||||
action = (mouseButton == 1) ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
action = ( mouseButton == 1 ) ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
||||||
stack = ( (SlotME) slot ).getAEStack();
|
stack = ( (SlotME) slot ).getAEStack();
|
||||||
|
|
||||||
if( stack != null && action == InventoryAction.PICKUP_OR_SET_DOWN && stack.getStackSize() == 0 && player.inventory.getItemStack() == null )
|
if( stack != null && action == InventoryAction.PICKUP_OR_SET_DOWN && stack.getStackSize() == 0 && player.inventory.getItemStack() == null )
|
||||||
@@ -455,7 +461,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case QUICK_MOVE:
|
case QUICK_MOVE:
|
||||||
action = isCtrlKeyDown() ? InventoryAction.PICKUP_SINGLE : InventoryAction.SHIFT_CLICK;
|
action = ( mouseButton == 1 ) ? InventoryAction.PICKUP_SINGLE : InventoryAction.SHIFT_CLICK;
|
||||||
stack = ( (SlotME) slot ).getAEStack();
|
stack = ( (SlotME) slot ).getAEStack();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -484,7 +490,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
{
|
{
|
||||||
( (AEBaseContainer) this.inventorySlots ).setTargetStack( stack );
|
( (AEBaseContainer) this.inventorySlots ).setTargetStack( stack );
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( action, this.getInventorySlots().size(), 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( action, this.getInventorySlots().size(), 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -515,7 +521,9 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
final List<Slot> slots = this.getInventorySlots();
|
final List<Slot> slots = this.getInventorySlots();
|
||||||
for( final Slot inventorySlot : slots )
|
for( final Slot inventorySlot : slots )
|
||||||
{
|
{
|
||||||
if( inventorySlot != null && inventorySlot.canTakeStack( this.mc.thePlayer ) && inventorySlot.getHasStack() && inventorySlot.inventory == slot.inventory && Container.canAddItemToSlot( inventorySlot, this.dbl_whichItem, true ) )
|
if( inventorySlot != null && inventorySlot.canTakeStack(
|
||||||
|
this.mc.thePlayer ) && inventorySlot.getHasStack() && inventorySlot.inventory == slot.inventory && Container.canAddItemToSlot(
|
||||||
|
inventorySlot, this.dbl_whichItem, true ) )
|
||||||
{
|
{
|
||||||
this.handleMouseClick( inventorySlot, inventorySlot.slotNumber, 1, clickType );
|
this.handleMouseClick( inventorySlot, inventorySlot.slotNumber, 1, clickType );
|
||||||
}
|
}
|
||||||
@@ -531,16 +539,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
@Override
|
@Override
|
||||||
protected boolean checkHotbarKeys( final int keyCode )
|
protected boolean checkHotbarKeys( final int keyCode )
|
||||||
{
|
{
|
||||||
final Slot theSlot;
|
final Slot theSlot = this.getSlotUnderMouse();
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
theSlot = ObfuscationReflectionHelper.getPrivateValue( GuiContainer.class, this, "theSlot", "field_147006_u", "f" );
|
|
||||||
}
|
|
||||||
catch( final Throwable t )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( this.mc.thePlayer.inventory.getItemStack() == null && theSlot != null )
|
if( this.mc.thePlayer.inventory.getItemStack() == null && theSlot != null )
|
||||||
{
|
{
|
||||||
@@ -571,7 +570,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
{
|
{
|
||||||
if( s.getSlotIndex() == j && s.inventory == ( (AEBaseContainer) this.inventorySlots ).getPlayerInv() )
|
if( s.getSlotIndex() == j && s.inventory == ( (AEBaseContainer) this.inventorySlots ).getPlayerInv() )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwapSlots( s.slotNumber, theSlot.slotNumber ) );
|
NetworkHandler.instance().sendToServer( new PacketSwapSlots( s.slotNumber, theSlot.slotNumber ) );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -640,7 +639,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
for( int h = 0; h < times; h++ )
|
for( int h = 0; h < times; h++ )
|
||||||
{
|
{
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( direction, inventorySize, 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( direction, inventorySize, 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -693,7 +692,8 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
/**
|
/**
|
||||||
* This overrides the base-class method through some access transformer hackery...
|
* This overrides the base-class method through some access transformer hackery...
|
||||||
*/
|
*/
|
||||||
public void drawSlot( final Slot s )
|
@Override
|
||||||
|
public void drawSlot( Slot s )
|
||||||
{
|
{
|
||||||
if( s instanceof SlotME )
|
if( s instanceof SlotME )
|
||||||
{
|
{
|
||||||
@@ -712,7 +712,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
this.itemRender.zLevel = 0.0F;
|
this.itemRender.zLevel = 0.0F;
|
||||||
|
|
||||||
// Annoying but easier than trying to splice into render item
|
// Annoying but easier than trying to splice into render item
|
||||||
this.safeDrawSlot( new Size1Slot( s ) );
|
super.drawSlot( new Size1Slot( s ) );
|
||||||
|
|
||||||
stackSizeRenderer.renderStackSize( fontRendererObj, ( (SlotME) s ).getAEStack(), s.getStack(), s.xDisplayPosition, s.yDisplayPosition );
|
stackSizeRenderer.renderStackSize( fontRendererObj, ( (SlotME) s ).getAEStack(), s.getStack(), s.xDisplayPosition, s.yDisplayPosition );
|
||||||
|
|
||||||
@@ -759,11 +759,15 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
final float f1 = 0.00390625F;
|
final float f1 = 0.00390625F;
|
||||||
final float f = 0.00390625F;
|
final float f = 0.00390625F;
|
||||||
final float par6 = 16;
|
final float par6 = 16;
|
||||||
vb.pos( par1 + 0, par2 + par6, this.zLevel ).tex( ( par3 + 0 ) * f, ( par4 + par6 ) * f1 ).color( 1.0f, 1.0f, 1.0f, aes.getOpacityOfIcon() ).endVertex();
|
vb.pos( par1 + 0, par2 + par6, this.zLevel ).tex( ( par3 + 0 ) * f, ( par4 + par6 ) * f1 ).color( 1.0f, 1.0f, 1.0f,
|
||||||
|
aes.getOpacityOfIcon() ).endVertex();
|
||||||
final float par5 = 16;
|
final float par5 = 16;
|
||||||
vb.pos( par1 + par5, par2 + par6, this.zLevel ).tex( ( par3 + par5 ) * f, ( par4 + par6 ) * f1 ).color( 1.0f, 1.0f, 1.0f, aes.getOpacityOfIcon() ).endVertex();
|
vb.pos( par1 + par5, par2 + par6, this.zLevel ).tex( ( par3 + par5 ) * f, ( par4 + par6 ) * f1 ).color( 1.0f, 1.0f, 1.0f,
|
||||||
vb.pos( par1 + par5, par2 + 0, this.zLevel ).tex( ( par3 + par5 ) * f, ( par4 + 0 ) * f1 ).color( 1.0f, 1.0f, 1.0f, aes.getOpacityOfIcon() ).endVertex();
|
aes.getOpacityOfIcon() ).endVertex();
|
||||||
vb.pos( par1 + 0, par2 + 0, this.zLevel ).tex( ( par3 + 0 ) * f, ( par4 + 0 ) * f1 ).color( 1.0f, 1.0f, 1.0f, aes.getOpacityOfIcon() ).endVertex();
|
vb.pos( par1 + par5, par2 + 0, this.zLevel ).tex( ( par3 + par5 ) * f, ( par4 + 0 ) * f1 ).color( 1.0f, 1.0f, 1.0f,
|
||||||
|
aes.getOpacityOfIcon() ).endVertex();
|
||||||
|
vb.pos( par1 + 0, par2 + 0, this.zLevel ).tex( ( par3 + 0 ) * f, ( par4 + 0 ) * f1 ).color( 1.0f, 1.0f, 1.0f,
|
||||||
|
aes.getOpacityOfIcon() ).endVertex();
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -777,7 +781,8 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
{
|
{
|
||||||
if( ( (AppEngSlot) s ).getIsValid() == hasCalculatedValidness.NotAvailable )
|
if( ( (AppEngSlot) s ).getIsValid() == hasCalculatedValidness.NotAvailable )
|
||||||
{
|
{
|
||||||
boolean isValid = s.isItemValid( is ) || s instanceof SlotOutput || s instanceof AppEngCraftingSlot || s instanceof SlotDisabled || s instanceof SlotInaccessible || s instanceof SlotFake || s instanceof SlotRestrictedInput || s instanceof SlotDisconnected;
|
boolean isValid = s.isItemValid(
|
||||||
|
is ) || s instanceof SlotOutput || s instanceof AppEngCraftingSlot || s instanceof SlotDisabled || s instanceof SlotInaccessible || s instanceof SlotFake || s instanceof SlotRestrictedInput || s instanceof SlotDisconnected;
|
||||||
if( isValid && s instanceof SlotRestrictedInput )
|
if( isValid && s instanceof SlotRestrictedInput )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -809,11 +814,11 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
if( s instanceof AppEngSlot )
|
if( s instanceof AppEngSlot )
|
||||||
{
|
{
|
||||||
( (AppEngSlot) s ).setDisplay( true );
|
( (AppEngSlot) s ).setDisplay( true );
|
||||||
this.safeDrawSlot( s );
|
super.drawSlot( s );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.safeDrawSlot( s );
|
super.drawSlot( s );
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -824,7 +829,7 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// do the usual for non-ME Slots.
|
// do the usual for non-ME Slots.
|
||||||
this.safeDrawSlot( s );
|
super.drawSlot( s );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isPowered()
|
protected boolean isPowered()
|
||||||
@@ -832,22 +837,12 @@ public abstract class AEBaseGui extends GuiContainer
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void safeDrawSlot( final Slot s )
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
GuiContainer.class.getDeclaredMethod( "func_146977_a_original", Slot.class ).invoke( this, s );
|
|
||||||
}
|
|
||||||
catch( final Exception err )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void bindTexture( final String file )
|
public void bindTexture( final String file )
|
||||||
{
|
{
|
||||||
final ResourceLocation loc = new ResourceLocation( AppEng.MOD_ID, "textures/" + file );
|
final ResourceLocation loc = new ResourceLocation( AppEng.MOD_ID, "textures/" + file );
|
||||||
this.mc.getTextureManager().bindTexture( loc );
|
this.mc.getTextureManager().bindTexture( loc );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GuiScrollbar getScrollBar()
|
protected GuiScrollbar getScrollBar()
|
||||||
{
|
{
|
||||||
return this.myScrollBar;
|
return this.myScrollBar;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public abstract class AEBaseMEGui extends AEBaseGui
|
|||||||
final Slot s = this.getSlot( mouseX, mouseY );
|
final Slot s = this.getSlot( mouseX, mouseY );
|
||||||
if( s instanceof SlotME )
|
if( s instanceof SlotME )
|
||||||
{
|
{
|
||||||
final int BigNumber = AEConfig.instance.useTerminalUseLargeFont() ? 999 : 9999;
|
final int BigNumber = AEConfig.instance().useTerminalUseLargeFont() ? 999 : 9999;
|
||||||
|
|
||||||
IAEItemStack myStack = null;
|
IAEItemStack myStack = null;
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ public abstract class AEBaseMEGui extends AEBaseGui
|
|||||||
final Slot s = this.getSlot( x, y );
|
final Slot s = this.getSlot( x, y );
|
||||||
if( s instanceof SlotME && stack != null )
|
if( s instanceof SlotME && stack != null )
|
||||||
{
|
{
|
||||||
final int BigNumber = AEConfig.instance.useTerminalUseLargeFont() ? 999 : 9999;
|
final int BigNumber = AEConfig.instance().useTerminalUseLargeFont() ? 999 : 9999;
|
||||||
|
|
||||||
IAEItemStack myStack = null;
|
IAEItemStack myStack = null;
|
||||||
|
|
||||||
|
|||||||
@@ -37,14 +37,14 @@ public class AEConfigGui extends GuiConfig
|
|||||||
|
|
||||||
public AEConfigGui( final GuiScreen parent )
|
public AEConfigGui( final GuiScreen parent )
|
||||||
{
|
{
|
||||||
super( parent, getConfigElements(), AppEng.MOD_ID, false, false, GuiConfig.getAbridgedConfigPath( AEConfig.instance.getFilePath() ) );
|
super( parent, getConfigElements(), AppEng.MOD_ID, false, false, GuiConfig.getAbridgedConfigPath( AEConfig.instance().getFilePath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<IConfigElement> getConfigElements()
|
private static List<IConfigElement> getConfigElements()
|
||||||
{
|
{
|
||||||
final List<IConfigElement> list = new ArrayList<IConfigElement>();
|
final List<IConfigElement> list = new ArrayList<IConfigElement>();
|
||||||
|
|
||||||
for( final String cat : AEConfig.instance.getCategoryNames() )
|
for( final String cat : AEConfig.instance().getCategoryNames() )
|
||||||
{
|
{
|
||||||
if( cat.equals( "versionchecker" ) )
|
if( cat.equals( "versionchecker" ) )
|
||||||
{
|
{
|
||||||
@@ -56,7 +56,7 @@ public class AEConfigGui extends GuiConfig
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ConfigCategory cc = AEConfig.instance.getCategory( cat );
|
final ConfigCategory cc = AEConfig.instance().getCategory( cat );
|
||||||
|
|
||||||
if( cc.isChild() )
|
if( cc.isChild() )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -176,15 +176,15 @@ public class GuiCellWorkbench extends GuiUpgradeable
|
|||||||
{
|
{
|
||||||
if( btn == this.copyMode )
|
if( btn == this.copyMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "CellWorkbench.Action", "CopyMode" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "CellWorkbench.Action", "CopyMode" ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.partition )
|
else if( btn == this.partition )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "CellWorkbench.Action", "Partition" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "CellWorkbench.Action", "Partition" ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.clear )
|
else if( btn == this.clear )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "CellWorkbench.Action", "Clear" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "CellWorkbench.Action", "Clear" ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.fuzzyMode )
|
else if( btn == this.fuzzyMode )
|
||||||
{
|
{
|
||||||
@@ -193,7 +193,7 @@ public class GuiCellWorkbench extends GuiUpgradeable
|
|||||||
FuzzyMode fz = (FuzzyMode) this.fuzzyMode.getCurrentValue();
|
FuzzyMode fz = (FuzzyMode) this.fuzzyMode.getCurrentValue();
|
||||||
fz = Platform.rotateEnum( fz, backwards, Settings.FUZZY_MODE.getPossibleValues() );
|
fz = Platform.rotateEnum( fz, backwards, Settings.FUZZY_MODE.getPossibleValues() );
|
||||||
|
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "CellWorkbench.Fuzzy", fz.name() ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "CellWorkbench.Fuzzy", fz.name() ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class GuiChest extends AEBaseGui
|
|||||||
|
|
||||||
if( par1GuiButton == this.priority )
|
if( par1GuiButton == this.priority )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class GuiCondenser extends AEBaseGui
|
|||||||
|
|
||||||
if( this.mode == btn )
|
if( this.mode == btn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( Settings.CONDENSER_OUTPUT, backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( Settings.CONDENSER_OUTPUT, backwards ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -76,10 +76,10 @@ public class GuiCraftAmount extends AEBaseGui
|
|||||||
{
|
{
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
final int a = AEConfig.instance.craftItemsByStackAmounts( 0 );
|
final int a = AEConfig.instance().craftItemsByStackAmounts( 0 );
|
||||||
final int b = AEConfig.instance.craftItemsByStackAmounts( 1 );
|
final int b = AEConfig.instance().craftItemsByStackAmounts( 1 );
|
||||||
final int c = AEConfig.instance.craftItemsByStackAmounts( 2 );
|
final int c = AEConfig.instance().craftItemsByStackAmounts( 2 );
|
||||||
final int d = AEConfig.instance.craftItemsByStackAmounts( 3 );
|
final int d = AEConfig.instance().craftItemsByStackAmounts( 3 );
|
||||||
|
|
||||||
this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 26, 22, 20, "+" + a ) );
|
this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 26, 22, 20, "+" + a ) );
|
||||||
this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 26, 28, 20, "+" + b ) );
|
this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 26, 28, 20, "+" + b ) );
|
||||||
@@ -224,12 +224,12 @@ public class GuiCraftAmount extends AEBaseGui
|
|||||||
|
|
||||||
if( btn == this.originalGuiBtn )
|
if( btn == this.originalGuiBtn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.originalGui ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( this.originalGui ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.next )
|
if( btn == this.next )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketCraftRequest( Integer.parseInt( this.amountToCraft.getText() ), isShiftKeyDown() ) );
|
NetworkHandler.instance().sendToServer( new PacketCraftRequest( Integer.parseInt( this.amountToCraft.getText() ), isShiftKeyDown() ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch( final NumberFormatException e )
|
catch( final NumberFormatException e )
|
||||||
|
|||||||
@@ -552,7 +552,7 @@ public class GuiCraftConfirm extends AEBaseGui
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "Terminal.Cpu", backwards ? "Prev" : "Next" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "Terminal.Cpu", backwards ? "Prev" : "Next" ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -562,14 +562,14 @@ public class GuiCraftConfirm extends AEBaseGui
|
|||||||
|
|
||||||
if( btn == this.cancel )
|
if( btn == this.cancel )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.OriginalGui ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( this.OriginalGui ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.start )
|
if( btn == this.start )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "Terminal.Start", "Start" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "Terminal.Start", "Start" ) );
|
||||||
}
|
}
|
||||||
catch( final Throwable e )
|
catch( final Throwable e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "TileCrafting.Cancel", "Cancel" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "TileCrafting.Cancel", "Cancel" ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -248,7 +248,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
|
|||||||
scheduled = true;
|
scheduled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( AEConfig.instance.useColoredCraftingStatus && ( active || scheduled ) )
|
if( AEConfig.instance().isUseColoredCraftingStatus() && ( active || scheduled ) )
|
||||||
{
|
{
|
||||||
final int bgColor = ( active ? AEColor.GREEN.blackVariant : AEColor.YELLOW.blackVariant ) | BACKGROUND_ALPHA;
|
final int bgColor = ( active ? AEColor.GREEN.blackVariant : AEColor.YELLOW.blackVariant ) | BACKGROUND_ALPHA;
|
||||||
final int startX = ( x * ( 1 + SECTION_LENGTH ) + ITEMSTACK_LEFT_OFFSET ) * 2;
|
final int startX = ( x * ( 1 + SECTION_LENGTH ) + ITEMSTACK_LEFT_OFFSET ) * 2;
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "Terminal.Cpu", backwards ? "Prev" : "Next" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "Terminal.Cpu", backwards ? "Prev" : "Next" ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -118,7 +118,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU
|
|||||||
|
|
||||||
if( btn == this.originalGuiBtn )
|
if( btn == this.originalGuiBtn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.originalGui ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( this.originalGui ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class GuiCraftingTerm extends GuiMEMonitorable
|
|||||||
if( s != null )
|
if( s != null )
|
||||||
{
|
{
|
||||||
final PacketInventoryAction p = new PacketInventoryAction( InventoryAction.MOVE_REGION, s.slotNumber, 0 );
|
final PacketInventoryAction p = new PacketInventoryAction( InventoryAction.MOVE_REGION, s.slotNumber, 0 );
|
||||||
NetworkHandler.instance.sendToServer( p );
|
NetworkHandler.instance().sendToServer( p );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class GuiDrive extends AEBaseGui
|
|||||||
|
|
||||||
if( par1GuiButton == this.priority )
|
if( par1GuiButton == this.priority )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,11 +96,11 @@ public class GuiFormationPlane extends GuiUpgradeable
|
|||||||
|
|
||||||
if( btn == this.priority )
|
if( btn == this.priority )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.placeMode )
|
else if( btn == this.placeMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.placeMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.placeMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,12 +113,12 @@ public class GuiIOPort extends GuiUpgradeable
|
|||||||
|
|
||||||
if( btn == this.fullMode )
|
if( btn == this.fullMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.fullMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.fullMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.operationMode )
|
if( btn == this.operationMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.operationMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.operationMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,17 +103,17 @@ public class GuiInterface extends GuiUpgradeable
|
|||||||
|
|
||||||
if( btn == this.priority )
|
if( btn == this.priority )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.interfaceMode )
|
if( btn == this.interfaceMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( Settings.INTERFACE_TERMINAL, backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( Settings.INTERFACE_TERMINAL, backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.BlockMode )
|
if( btn == this.BlockMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.BlockMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.BlockMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,10 +88,10 @@ public class GuiLevelEmitter extends GuiUpgradeable
|
|||||||
this.fuzzyMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 48, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL );
|
this.fuzzyMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 48, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL );
|
||||||
this.craftingMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 48, Settings.CRAFT_VIA_REDSTONE, YesNo.NO );
|
this.craftingMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 48, Settings.CRAFT_VIA_REDSTONE, YesNo.NO );
|
||||||
|
|
||||||
final int a = AEConfig.instance.levelByStackAmounts( 0 );
|
final int a = AEConfig.instance().levelByStackAmounts( 0 );
|
||||||
final int b = AEConfig.instance.levelByStackAmounts( 1 );
|
final int b = AEConfig.instance().levelByStackAmounts( 1 );
|
||||||
final int c = AEConfig.instance.levelByStackAmounts( 2 );
|
final int c = AEConfig.instance().levelByStackAmounts( 2 );
|
||||||
final int d = AEConfig.instance.levelByStackAmounts( 3 );
|
final int d = AEConfig.instance().levelByStackAmounts( 3 );
|
||||||
|
|
||||||
this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 17, 22, 20, "+" + a ) );
|
this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 17, 22, 20, "+" + a ) );
|
||||||
this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 17, 28, 20, "+" + b ) );
|
this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 17, 28, 20, "+" + b ) );
|
||||||
@@ -175,12 +175,12 @@ public class GuiLevelEmitter extends GuiUpgradeable
|
|||||||
|
|
||||||
if( btn == this.craftingMode )
|
if( btn == this.craftingMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.craftingMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.craftingMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.levelMode )
|
if( btn == this.levelMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.levelMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.levelMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000;
|
final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000;
|
||||||
@@ -224,7 +224,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
|
|||||||
|
|
||||||
this.level.setText( Out = Long.toString( result ) );
|
this.level.setText( Out = Long.toString( result ) );
|
||||||
|
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "LevelEmitter.Value", Out ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "LevelEmitter.Value", Out ) );
|
||||||
}
|
}
|
||||||
catch( final NumberFormatException e )
|
catch( final NumberFormatException e )
|
||||||
{
|
{
|
||||||
@@ -265,7 +265,7 @@ public class GuiLevelEmitter extends GuiUpgradeable
|
|||||||
Out = "0";
|
Out = "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "LevelEmitter.Value", Out ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "LevelEmitter.Value", Out ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
{
|
{
|
||||||
if( btn == this.craftingStatusBtn )
|
if( btn == this.craftingStatusBtn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_CRAFTING_STATUS ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( GuiBridge.GUI_CRAFTING_STATUS ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn instanceof GuiImgButton )
|
if( btn instanceof GuiImgButton )
|
||||||
@@ -183,17 +183,17 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
|
|
||||||
if( btn == this.terminalStyleBox )
|
if( btn == this.terminalStyleBox )
|
||||||
{
|
{
|
||||||
AEConfig.instance.settings.putSetting( iBtn.getSetting(), next );
|
AEConfig.instance().getConfigManager().putSetting( iBtn.getSetting(), next );
|
||||||
}
|
}
|
||||||
else if( btn == this.searchBoxSettings )
|
else if( btn == this.searchBoxSettings )
|
||||||
{
|
{
|
||||||
AEConfig.instance.settings.putSetting( iBtn.getSetting(), next );
|
AEConfig.instance().getConfigManager().putSetting( iBtn.getSetting(), next );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( iBtn.getSetting().name(), next.name() ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( iBtn.getSetting().name(), next.name() ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -223,7 +223,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
Keyboard.enableRepeatEvents( true );
|
Keyboard.enableRepeatEvents( true );
|
||||||
|
|
||||||
this.maxRows = this.getMaxRows();
|
this.maxRows = this.getMaxRows();
|
||||||
this.perRow = AEConfig.instance.getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL ? 9 : 9 + ( ( this.width - this.standardSize ) / 18 );
|
this.perRow = AEConfig.instance().getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL ? 9 : 9 + ( ( this.width - this.standardSize ) / 18 );
|
||||||
|
|
||||||
final int magicNumber = 114 + 1;
|
final int magicNumber = 114 + 1;
|
||||||
final int extraSpace = this.height - magicNumber - this.reservedSpace;
|
final int extraSpace = this.height - magicNumber - this.reservedSpace;
|
||||||
@@ -248,7 +248,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( AEConfig.instance.getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL )
|
if( AEConfig.instance().getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL )
|
||||||
{
|
{
|
||||||
this.xSize = this.standardSize + ( ( this.perRow - 9 ) * 18 );
|
this.xSize = this.standardSize + ( ( this.perRow - 9 ) * 18 );
|
||||||
}
|
}
|
||||||
@@ -284,12 +284,12 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
this.buttonList.add( this.SortDirBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.SORT_DIRECTION, this.configSrc.getSetting( Settings.SORT_DIRECTION ) ) );
|
this.buttonList.add( this.SortDirBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.SORT_DIRECTION, this.configSrc.getSetting( Settings.SORT_DIRECTION ) ) );
|
||||||
offset += 20;
|
offset += 20;
|
||||||
|
|
||||||
this.buttonList.add( this.searchBoxSettings = new GuiImgButton( this.guiLeft - 18, offset, Settings.SEARCH_MODE, AEConfig.instance.settings.getSetting( Settings.SEARCH_MODE ) ) );
|
this.buttonList.add( this.searchBoxSettings = new GuiImgButton( this.guiLeft - 18, offset, Settings.SEARCH_MODE, AEConfig.instance().getConfigManager().getSetting( Settings.SEARCH_MODE ) ) );
|
||||||
offset += 20;
|
offset += 20;
|
||||||
|
|
||||||
if( !( this instanceof GuiMEPortableCell ) || this instanceof GuiWirelessTerm )
|
if( !( this instanceof GuiMEPortableCell ) || this instanceof GuiWirelessTerm )
|
||||||
{
|
{
|
||||||
this.buttonList.add( this.terminalStyleBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.TERMINAL_STYLE, AEConfig.instance.settings.getSetting( Settings.TERMINAL_STYLE ) ) );
|
this.buttonList.add( this.terminalStyleBox = new GuiImgButton( this.guiLeft - 18, offset, Settings.TERMINAL_STYLE, AEConfig.instance().getConfigManager().getSetting( Settings.TERMINAL_STYLE ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.searchField = new MEGuiTextField( this.fontRendererObj, this.guiLeft + Math.max( 80, this.offsetX ), this.guiTop + 4, 90, 12 );
|
this.searchField = new MEGuiTextField( this.fontRendererObj, this.guiLeft + Math.max( 80, this.offsetX ), this.guiTop + 4, 90, 12 );
|
||||||
@@ -304,8 +304,8 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
this.craftingStatusBtn.setHideEdge( 13 );
|
this.craftingStatusBtn.setHideEdge( 13 );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enum setting = AEConfig.INSTANCE.getSetting( "Terminal", SearchBoxMode.class, SearchBoxMode.AUTOSEARCH );
|
// Enum setting = AEConfig.instance().getSetting( "Terminal", SearchBoxMode.class, SearchBoxMode.AUTOSEARCH );
|
||||||
final Enum setting = AEConfig.instance.settings.getSetting( Settings.SEARCH_MODE );
|
final Enum setting = AEConfig.instance().getConfigManager().getSetting( Settings.SEARCH_MODE );
|
||||||
this.searchField.setFocused( SearchBoxMode.AUTOSEARCH == setting || SearchBoxMode.JEI_AUTOSEARCH == setting );
|
this.searchField.setFocused( SearchBoxMode.AUTOSEARCH == setting || SearchBoxMode.JEI_AUTOSEARCH == setting );
|
||||||
|
|
||||||
if( this.isSubGui() )
|
if( this.isSubGui() )
|
||||||
@@ -354,7 +354,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
@Override
|
@Override
|
||||||
protected void mouseClicked( final int xCoord, final int yCoord, final int btn ) throws IOException
|
protected void mouseClicked( final int xCoord, final int yCoord, final int btn ) throws IOException
|
||||||
{
|
{
|
||||||
final Enum searchMode = AEConfig.instance.settings.getSetting( Settings.SEARCH_MODE );
|
final Enum searchMode = AEConfig.instance().getConfigManager().getSetting( Settings.SEARCH_MODE );
|
||||||
|
|
||||||
if( searchMode != SearchBoxMode.AUTOSEARCH && searchMode != SearchBoxMode.JEI_AUTOSEARCH )
|
if( searchMode != SearchBoxMode.AUTOSEARCH && searchMode != SearchBoxMode.JEI_AUTOSEARCH )
|
||||||
{
|
{
|
||||||
@@ -438,7 +438,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
|
|||||||
|
|
||||||
int getMaxRows()
|
int getMaxRows()
|
||||||
{
|
{
|
||||||
return AEConfig.instance.getConfigManager().getSetting( Settings.TERMINAL_STYLE ) == TerminalStyle.SMALL ? 6 : Integer.MAX_VALUE;
|
return AEConfig.instance().getConfigManager().getSetting( Settings.TERMINAL_STYLE ) == TerminalStyle.SMALL ? 6 : Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void repositionSlot( final AppEngSlot s )
|
protected void repositionSlot( final AppEngSlot s )
|
||||||
|
|||||||
@@ -77,8 +77,8 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
|
|||||||
|
|
||||||
if( btn == this.units )
|
if( btn == this.units )
|
||||||
{
|
{
|
||||||
AEConfig.instance.nextPowerUnit( backwards );
|
AEConfig.instance().nextPowerUnit( backwards );
|
||||||
this.units.set( AEConfig.instance.selectedPowerUnit() );
|
this.units.set( AEConfig.instance().selectedPowerUnit() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
|
|||||||
{
|
{
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
this.units = new GuiImgButton( this.guiLeft - 18, this.guiTop + 8, Settings.POWER_UNITS, AEConfig.instance.selectedPowerUnit() );
|
this.units = new GuiImgButton( this.guiLeft - 18, this.guiTop + 8, Settings.POWER_UNITS, AEConfig.instance().selectedPowerUnit() );
|
||||||
this.buttonList.add( this.units );
|
this.buttonList.add( this.units );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class GuiNetworkTool extends AEBaseGui
|
|||||||
{
|
{
|
||||||
if( btn == this.tFacades )
|
if( btn == this.tFacades )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "NetworkTool", "Toggle" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "NetworkTool", "Toggle" ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
|
|||||||
@@ -78,22 +78,22 @@ public class GuiPatternTerm extends GuiMEMonitorable
|
|||||||
|
|
||||||
if( this.tabCraftButton == btn || this.tabProcessButton == btn )
|
if( this.tabCraftButton == btn || this.tabProcessButton == btn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PatternTerminal.CraftMode", this.tabProcessButton == btn ? CRAFTMODE_CRFTING : CRAFTMODE_PROCESSING ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "PatternTerminal.CraftMode", this.tabProcessButton == btn ? CRAFTMODE_CRFTING : CRAFTMODE_PROCESSING ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this.encodeBtn == btn )
|
if( this.encodeBtn == btn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PatternTerminal.Encode", "1" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "PatternTerminal.Encode", "1" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this.clearBtn == btn )
|
if( this.clearBtn == btn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PatternTerminal.Clear", "1" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "PatternTerminal.Clear", "1" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this.substitutionsEnabledBtn == btn || this.substitutionsDisabledBtn == btn )
|
if( this.substitutionsEnabledBtn == btn || this.substitutionsDisabledBtn == btn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PatternTerminal.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "PatternTerminal.Substitute", this.substitutionsEnabledBtn == btn ? SUBSITUTION_DISABLE : SUBSITUTION_ENABLE ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
|
|||||||
@@ -77,10 +77,10 @@ public class GuiPriority extends AEBaseGui
|
|||||||
{
|
{
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
final int a = AEConfig.instance.priorityByStacksAmounts( 0 );
|
final int a = AEConfig.instance().priorityByStacksAmounts( 0 );
|
||||||
final int b = AEConfig.instance.priorityByStacksAmounts( 1 );
|
final int b = AEConfig.instance().priorityByStacksAmounts( 1 );
|
||||||
final int c = AEConfig.instance.priorityByStacksAmounts( 2 );
|
final int c = AEConfig.instance().priorityByStacksAmounts( 2 );
|
||||||
final int d = AEConfig.instance.priorityByStacksAmounts( 3 );
|
final int d = AEConfig.instance().priorityByStacksAmounts( 3 );
|
||||||
|
|
||||||
this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 32, 22, 20, "+" + a ) );
|
this.buttonList.add( this.plus1 = new GuiButton( 0, this.guiLeft + 20, this.guiTop + 32, 22, 20, "+" + a ) );
|
||||||
this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 32, 28, 20, "+" + b ) );
|
this.buttonList.add( this.plus10 = new GuiButton( 0, this.guiLeft + 48, this.guiTop + 32, 28, 20, "+" + b ) );
|
||||||
@@ -170,7 +170,7 @@ public class GuiPriority extends AEBaseGui
|
|||||||
|
|
||||||
if( btn == this.originalGuiBtn )
|
if( btn == this.originalGuiBtn )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.OriginalGui ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( this.OriginalGui ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000;
|
final boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000;
|
||||||
@@ -210,7 +210,7 @@ public class GuiPriority extends AEBaseGui
|
|||||||
|
|
||||||
this.priority.setText( out = Long.toString( result ) );
|
this.priority.setText( out = Long.toString( result ) );
|
||||||
|
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
|
||||||
}
|
}
|
||||||
catch( final NumberFormatException e )
|
catch( final NumberFormatException e )
|
||||||
{
|
{
|
||||||
@@ -251,7 +251,7 @@ public class GuiPriority extends AEBaseGui
|
|||||||
out = "0";
|
out = "0";
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class GuiQuartzKnife extends AEBaseGui
|
|||||||
{
|
{
|
||||||
final String Out = this.name.getText();
|
final String Out = this.name.getText();
|
||||||
( (ContainerQuartzKnife) this.inventorySlots ).setName( Out );
|
( (ContainerQuartzKnife) this.inventorySlots ).setName( Out );
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "QuartzKnife.Name", Out ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "QuartzKnife.Name", Out ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class GuiSecurityStation extends GuiMEMonitorable
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "TileSecurityStation.ToggleOption", toggleSetting.name() ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "TileSecurityStation.ToggleOption", toggleSetting.name() ) );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ import net.minecraft.entity.player.InventoryPlayer;
|
|||||||
import appeng.client.gui.AEBaseGui;
|
import appeng.client.gui.AEBaseGui;
|
||||||
import appeng.container.implementations.ContainerSkyChest;
|
import appeng.container.implementations.ContainerSkyChest;
|
||||||
import appeng.core.localization.GuiText;
|
import appeng.core.localization.GuiText;
|
||||||
import appeng.integration.IntegrationRegistry;
|
import appeng.integration.Integrations;
|
||||||
import appeng.integration.IntegrationType;
|
|
||||||
import appeng.tile.storage.TileSkyChest;
|
import appeng.tile.storage.TileSkyChest;
|
||||||
|
|
||||||
|
|
||||||
@@ -55,6 +54,6 @@ public class GuiSkyChest extends AEBaseGui
|
|||||||
@Override
|
@Override
|
||||||
protected boolean enableSpaceClicking()
|
protected boolean enableSpaceClicking()
|
||||||
{
|
{
|
||||||
return !IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.InvTweaks );
|
return !Integrations.invTweaks().isEnabled();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ public class GuiSpatialIOPort extends AEBaseGui
|
|||||||
|
|
||||||
if( btn == this.units )
|
if( btn == this.units )
|
||||||
{
|
{
|
||||||
AEConfig.instance.nextPowerUnit( backwards );
|
AEConfig.instance().nextPowerUnit( backwards );
|
||||||
this.units.set( AEConfig.instance.selectedPowerUnit() );
|
this.units.set( AEConfig.instance().selectedPowerUnit() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ public class GuiSpatialIOPort extends AEBaseGui
|
|||||||
{
|
{
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
this.units = new GuiImgButton( this.guiLeft - 18, this.guiTop + 8, Settings.POWER_UNITS, AEConfig.instance.selectedPowerUnit() );
|
this.units = new GuiImgButton( this.guiLeft - 18, this.guiTop + 8, Settings.POWER_UNITS, AEConfig.instance().selectedPowerUnit() );
|
||||||
this.buttonList.add( this.units );
|
this.buttonList.add( this.units );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,23 +116,23 @@ public class GuiStorageBus extends GuiUpgradeable
|
|||||||
{
|
{
|
||||||
if( btn == this.partition )
|
if( btn == this.partition )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "StorageBus.Action", "Partition" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "StorageBus.Action", "Partition" ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.clear )
|
else if( btn == this.clear )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketValueConfig( "StorageBus.Action", "Clear" ) );
|
NetworkHandler.instance().sendToServer( new PacketValueConfig( "StorageBus.Action", "Clear" ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.priority )
|
else if( btn == this.priority )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
NetworkHandler.instance().sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.rwMode )
|
else if( btn == this.rwMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.rwMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.rwMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
else if( btn == this.storageFilter )
|
else if( btn == this.storageFilter )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.storageFilter.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.storageFilter.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
|
|||||||
@@ -182,22 +182,22 @@ public class GuiUpgradeable extends AEBaseGui
|
|||||||
|
|
||||||
if( btn == this.redstoneMode )
|
if( btn == this.redstoneMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.redstoneMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.redstoneMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.craftMode )
|
if( btn == this.craftMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.craftMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.craftMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.fuzzyMode )
|
if( btn == this.fuzzyMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.fuzzyMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.fuzzyMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( btn == this.schedulingMode )
|
if( btn == this.schedulingMode )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.schedulingMode.getSetting(), backwards ) );
|
NetworkHandler.instance().sendToServer( new PacketConfigButton( this.schedulingMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ public class GuiWireless extends AEBaseGui
|
|||||||
|
|
||||||
if( btn == this.units )
|
if( btn == this.units )
|
||||||
{
|
{
|
||||||
AEConfig.instance.nextPowerUnit( backwards );
|
AEConfig.instance().nextPowerUnit( backwards );
|
||||||
this.units.set( AEConfig.instance.selectedPowerUnit() );
|
this.units.set( AEConfig.instance().selectedPowerUnit() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@ public class GuiWireless extends AEBaseGui
|
|||||||
{
|
{
|
||||||
super.initGui();
|
super.initGui();
|
||||||
|
|
||||||
this.units = new GuiImgButton( this.guiLeft - 18, this.guiTop + 8, Settings.POWER_UNITS, AEConfig.instance.selectedPowerUnit() );
|
this.units = new GuiImgButton( this.guiLeft - 18, this.guiTop + 8, Settings.POWER_UNITS, AEConfig.instance().selectedPowerUnit() );
|
||||||
this.buttonList.add( this.units );
|
this.buttonList.add( this.units );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ import appeng.api.storage.data.IItemList;
|
|||||||
import appeng.client.gui.widgets.IScrollSource;
|
import appeng.client.gui.widgets.IScrollSource;
|
||||||
import appeng.client.gui.widgets.ISortSource;
|
import appeng.client.gui.widgets.ISortSource;
|
||||||
import appeng.core.AEConfig;
|
import appeng.core.AEConfig;
|
||||||
import appeng.integration.modules.JEI;
|
import appeng.integration.Integrations;
|
||||||
import appeng.items.storage.ItemViewCell;
|
import appeng.items.storage.ItemViewCell;
|
||||||
import appeng.util.ItemSorters;
|
import appeng.util.ItemSorters;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
import appeng.util.prioitylist.IPartitionList;
|
import appeng.util.prioritylist.IPartitionList;
|
||||||
|
|
||||||
|
|
||||||
public class ItemRepo
|
public class ItemRepo
|
||||||
@@ -58,7 +58,6 @@ public class ItemRepo
|
|||||||
private String searchString = "";
|
private String searchString = "";
|
||||||
private IPartitionList<IAEItemStack> myPartitionList;
|
private IPartitionList<IAEItemStack> myPartitionList;
|
||||||
private String innerSearch = "";
|
private String innerSearch = "";
|
||||||
private String jeiSearch = null;
|
|
||||||
private boolean hasPower;
|
private boolean hasPower;
|
||||||
|
|
||||||
public ItemRepo( final IScrollSource src, final ISortSource sortSrc )
|
public ItemRepo( final IScrollSource src, final ISortSource sortSrc )
|
||||||
@@ -124,14 +123,14 @@ public class ItemRepo
|
|||||||
this.dsp.ensureCapacity( this.list.size() );
|
this.dsp.ensureCapacity( this.list.size() );
|
||||||
|
|
||||||
final Enum viewMode = this.sortSrc.getSortDisplay();
|
final Enum viewMode = this.sortSrc.getSortDisplay();
|
||||||
final Enum searchMode = AEConfig.instance.settings.getSetting( Settings.SEARCH_MODE );
|
final Enum searchMode = AEConfig.instance().getConfigManager().getSetting( Settings.SEARCH_MODE );
|
||||||
if( searchMode == SearchBoxMode.JEI_AUTOSEARCH || searchMode == SearchBoxMode.JEI_MANUAL_SEARCH )
|
if( searchMode == SearchBoxMode.JEI_AUTOSEARCH || searchMode == SearchBoxMode.JEI_MANUAL_SEARCH )
|
||||||
{
|
{
|
||||||
this.updateJEI( this.searchString );
|
this.updateJEI( this.searchString );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.innerSearch = this.searchString;
|
this.innerSearch = this.searchString;
|
||||||
final boolean terminalSearchToolTips = AEConfig.instance.settings.getSetting( Settings.SEARCH_TOOLTIPS ) != YesNo.NO;
|
final boolean terminalSearchToolTips = AEConfig.instance().getConfigManager().getSetting( Settings.SEARCH_TOOLTIPS ) != YesNo.NO;
|
||||||
// boolean terminalSearchMods = Configuration.INSTANCE.settings.getSetting( Settings.SEARCH_MODS ) != YesNo.NO;
|
// boolean terminalSearchMods = Configuration.INSTANCE.settings.getSetting( Settings.SEARCH_MODS ) != YesNo.NO;
|
||||||
|
|
||||||
boolean searchMod = false;
|
boolean searchMod = false;
|
||||||
@@ -244,7 +243,7 @@ public class ItemRepo
|
|||||||
|
|
||||||
private void updateJEI( String filter )
|
private void updateJEI( String filter )
|
||||||
{
|
{
|
||||||
JEI.instance.getJei().setSearchText( filter );
|
Integrations.jei().setSearchText( filter );
|
||||||
}
|
}
|
||||||
|
|
||||||
public int size()
|
public int size()
|
||||||
|
|||||||
@@ -108,8 +108,9 @@ public class FacadeDispatcherBakedModel implements IBakedModel
|
|||||||
ItemFacade itemFacade = (ItemFacade) stack.getItem();
|
ItemFacade itemFacade = (ItemFacade) stack.getItem();
|
||||||
|
|
||||||
IBlockState state = itemFacade.getTextureBlockState( stack );
|
IBlockState state = itemFacade.getTextureBlockState( stack );
|
||||||
|
ItemStack textureItem = itemFacade.getTextureItem( stack );
|
||||||
|
|
||||||
return new FacadeWithBlockBakedModel( baseModel, state, format );
|
return new FacadeWithBlockBakedModel( baseModel, state, textureItem, format );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
|
|||||||
import net.minecraft.client.renderer.block.model.ItemOverrideList;
|
import net.minecraft.client.renderer.block.model.ItemOverrideList;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
import net.minecraft.client.renderer.vertex.VertexFormat;
|
import net.minecraft.client.renderer.vertex.VertexFormat;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
|
||||||
import appeng.client.render.cablebus.CubeBuilder;
|
import appeng.client.render.cablebus.CubeBuilder;
|
||||||
@@ -53,10 +54,13 @@ public class FacadeWithBlockBakedModel implements IBakedModel
|
|||||||
|
|
||||||
private final VertexFormat format;
|
private final VertexFormat format;
|
||||||
|
|
||||||
public FacadeWithBlockBakedModel( IBakedModel baseModel, IBlockState blockState, VertexFormat format )
|
private final ItemStack textureItem;
|
||||||
|
|
||||||
|
public FacadeWithBlockBakedModel( IBakedModel baseModel, IBlockState blockState, ItemStack textureItem, VertexFormat format )
|
||||||
{
|
{
|
||||||
this.baseModel = baseModel;
|
this.baseModel = baseModel;
|
||||||
this.blockState = blockState;
|
this.blockState = blockState;
|
||||||
|
this.textureItem = textureItem;
|
||||||
this.textureModel = Minecraft.getMinecraft().getBlockRendererDispatcher().getModelForState( blockState );
|
this.textureModel = Minecraft.getMinecraft().getBlockRendererDispatcher().getModelForState( blockState );
|
||||||
this.format = format;
|
this.format = format;
|
||||||
}
|
}
|
||||||
@@ -69,10 +73,14 @@ public class FacadeWithBlockBakedModel implements IBakedModel
|
|||||||
{
|
{
|
||||||
List<BakedQuad> quads = new ArrayList<>( 1 );
|
List<BakedQuad> quads = new ArrayList<>( 1 );
|
||||||
CubeBuilder builder = new CubeBuilder( format, quads );
|
CubeBuilder builder = new CubeBuilder( format, quads );
|
||||||
TextureAtlasSprite sprite = FacadeBuilder.getSprite( textureModel, blockState, side, rand );
|
FacadeBuilder.TextureAtlasAndTint sprite = FacadeBuilder.getSprite( textureModel, blockState, side, rand );
|
||||||
if ( sprite != null )
|
if ( sprite != null && sprite.getSprite() != null )
|
||||||
{
|
{
|
||||||
builder.setTexture( sprite );
|
if( sprite.getTint() != -1 )
|
||||||
|
{
|
||||||
|
builder.setColor( Minecraft.getMinecraft().getItemColors().getColorFromItemstack( textureItem, sprite.getTint() ) );
|
||||||
|
}
|
||||||
|
builder.setTexture( sprite.getSprite() );
|
||||||
builder.setDrawFaces( EnumSet.of( EnumFacing.NORTH ) );
|
builder.setDrawFaces( EnumSet.of( EnumFacing.NORTH ) );
|
||||||
builder.addCube( 0, 0, 0, 16, 16, 16 );
|
builder.addCube( 0, 0, 0, 16, 16, 16 );
|
||||||
return quads;
|
return quads;
|
||||||
|
|||||||
@@ -46,16 +46,16 @@ public class StackSizeRenderer
|
|||||||
{
|
{
|
||||||
if( is != null )
|
if( is != null )
|
||||||
{
|
{
|
||||||
final float scaleFactor = AEConfig.instance.useTerminalUseLargeFont() ? 0.85f : 0.5f;
|
final float scaleFactor = AEConfig.instance().useTerminalUseLargeFont() ? 0.85f : 0.5f;
|
||||||
final float inverseScaleFactor = 1.0f / scaleFactor;
|
final float inverseScaleFactor = 1.0f / scaleFactor;
|
||||||
final int offset = AEConfig.instance.useTerminalUseLargeFont() ? 0 : -1;
|
final int offset = AEConfig.instance().useTerminalUseLargeFont() ? 0 : -1;
|
||||||
|
|
||||||
final boolean unicodeFlag = fontRenderer.getUnicodeFlag();
|
final boolean unicodeFlag = fontRenderer.getUnicodeFlag();
|
||||||
fontRenderer.setUnicodeFlag( false );
|
fontRenderer.setUnicodeFlag( false );
|
||||||
|
|
||||||
if( is.stackSize == 0 )
|
if( is.stackSize == 0 )
|
||||||
{
|
{
|
||||||
final String craftLabelText = AEConfig.instance.useTerminalUseLargeFont() ? GuiText.LargeFontCraft.getLocal() : GuiText.SmallFontCraft.getLocal();
|
final String craftLabelText = AEConfig.instance().useTerminalUseLargeFont() ? GuiText.LargeFontCraft.getLocal() : GuiText.SmallFontCraft.getLocal();
|
||||||
GlStateManager.disableLighting();
|
GlStateManager.disableLighting();
|
||||||
GlStateManager.disableDepth();
|
GlStateManager.disableDepth();
|
||||||
GlStateManager.disableBlend();
|
GlStateManager.disableBlend();
|
||||||
@@ -95,7 +95,7 @@ public class StackSizeRenderer
|
|||||||
|
|
||||||
private String getToBeRenderedStackSize( final long originalSize )
|
private String getToBeRenderedStackSize( final long originalSize )
|
||||||
{
|
{
|
||||||
if( AEConfig.instance.useTerminalUseLargeFont() )
|
if( AEConfig.instance().useTerminalUseLargeFont() )
|
||||||
{
|
{
|
||||||
return SLIM_CONVERTER.toSlimReadableForm( originalSize );
|
return SLIM_CONVERTER.toSlimReadableForm( originalSize );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ package appeng.client.render.cablebus;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -35,7 +36,6 @@ import net.minecraft.client.Minecraft;
|
|||||||
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
import net.minecraft.client.renderer.BlockRendererDispatcher;
|
||||||
import net.minecraft.client.renderer.block.model.BakedQuad;
|
import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.color.BlockColors;
|
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
import net.minecraft.client.renderer.vertex.VertexFormat;
|
import net.minecraft.client.renderer.vertex.VertexFormat;
|
||||||
import net.minecraft.util.BlockRenderLayer;
|
import net.minecraft.util.BlockRenderLayer;
|
||||||
@@ -59,13 +59,14 @@ public class FacadeBuilder
|
|||||||
|
|
||||||
private static final ResourceLocation TEXTURE_FACADE = new ResourceLocation( AppEng.MOD_ID, "parts/cable_anchor" );
|
private static final ResourceLocation TEXTURE_FACADE = new ResourceLocation( AppEng.MOD_ID, "parts/cable_anchor" );
|
||||||
|
|
||||||
private final BlockColors blockColors = Minecraft.getMinecraft().getBlockColors();
|
|
||||||
|
|
||||||
private final VertexFormat format;
|
private final VertexFormat format;
|
||||||
|
|
||||||
private final TextureAtlasSprite facadeTexture;
|
private final TextureAtlasSprite facadeTexture;
|
||||||
|
|
||||||
private final BlockRendererDispatcher blockRendererDispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
|
private final BlockRendererDispatcher blockRendererDispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
|
||||||
|
|
||||||
|
private static final Set<ResourceLocation> warnedFor = new HashSet<>();
|
||||||
|
|
||||||
FacadeBuilder( VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )
|
FacadeBuilder( VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )
|
||||||
{
|
{
|
||||||
this.format = format;
|
this.format = format;
|
||||||
@@ -83,7 +84,7 @@ public class FacadeBuilder
|
|||||||
|
|
||||||
CubeBuilder builder = new CubeBuilder( format, quads );
|
CubeBuilder builder = new CubeBuilder( format, quads );
|
||||||
|
|
||||||
facadesState.forEach( ( side, textureItem ) ->
|
facadesState.forEach( ( side, state ) ->
|
||||||
{
|
{
|
||||||
AxisAlignedBB facadeBox = getFacadeBox( side, thinFacades );
|
AxisAlignedBB facadeBox = getFacadeBox( side, thinFacades );
|
||||||
AEAxisAlignedBB cutOutBox = getCutOutBox( facadeBox, partBoxes );
|
AEAxisAlignedBB cutOutBox = getCutOutBox( facadeBox, partBoxes );
|
||||||
@@ -100,10 +101,10 @@ public class FacadeBuilder
|
|||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TextureAtlasSprite getSprite( IBakedModel blockModel, IBlockState state, EnumFacing facing, long rand)
|
public static TextureAtlasAndTint getSprite( IBakedModel blockModel, IBlockState state, EnumFacing facing, long rand)
|
||||||
{
|
{
|
||||||
|
|
||||||
TextureAtlasSprite firstFound = null;
|
TextureAtlasAndTint firstFound = null;
|
||||||
BlockRenderLayer orgLayer = MinecraftForgeClient.getRenderLayer();
|
BlockRenderLayer orgLayer = MinecraftForgeClient.getRenderLayer();
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -116,27 +117,52 @@ public class FacadeBuilder
|
|||||||
|
|
||||||
for( BakedQuad bakedQuad : blockModel.getQuads( state, facing, rand ) )
|
for( BakedQuad bakedQuad : blockModel.getQuads( state, facing, rand ) )
|
||||||
{
|
{
|
||||||
return bakedQuad.getSprite();
|
return new TextureAtlasAndTint( bakedQuad );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( BakedQuad bakedQuad : blockModel.getQuads( state, null, rand ) )
|
for( BakedQuad bakedQuad : blockModel.getQuads( state, null, rand ) )
|
||||||
{
|
{
|
||||||
if( firstFound == null )
|
if( firstFound == null )
|
||||||
{
|
{
|
||||||
firstFound = bakedQuad.getSprite();
|
firstFound = new TextureAtlasAndTint( bakedQuad );
|
||||||
}
|
}
|
||||||
if( bakedQuad.getFace() == facing )
|
if( bakedQuad.getFace() == facing )
|
||||||
{
|
{
|
||||||
return bakedQuad.getSprite();
|
return new TextureAtlasAndTint( bakedQuad );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch( Exception e )
|
||||||
|
{
|
||||||
|
if( warnedFor.add( state.getBlock().getRegistryName() ) )
|
||||||
|
{
|
||||||
|
AELog.warn( "Unable to get facade sprite for blockstate %s. Supressing further warnings for this block.", state );
|
||||||
|
AELog.debug( e );
|
||||||
|
}
|
||||||
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
ForgeHooksClient.setRenderLayer( orgLayer );
|
ForgeHooksClient.setRenderLayer( orgLayer );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fall back to the particle texture, if we havent found anything else so far.
|
||||||
|
if( firstFound == null )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return new TextureAtlasAndTint( blockModel.getParticleTexture(), -1 );
|
||||||
|
}
|
||||||
|
catch( Exception e )
|
||||||
|
{
|
||||||
|
if( warnedFor.add( state.getBlock().getRegistryName() ) )
|
||||||
|
{
|
||||||
|
AELog.warn( "Unable to get facade sprite particle texture fallback for blockstate %s. Supressing further warnings for this block.", state );
|
||||||
|
AELog.debug( e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return firstFound;
|
return firstFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,6 +174,9 @@ public class FacadeBuilder
|
|||||||
|
|
||||||
builder.setDrawFaces( EnumSet.allOf( EnumFacing.class ) );
|
builder.setDrawFaces( EnumSet.allOf( EnumFacing.class ) );
|
||||||
|
|
||||||
|
// Reset to no color multiplicator
|
||||||
|
builder.setColorRGB( 0xFFFFFF );
|
||||||
|
|
||||||
// We only render the stilt if we don't intersect with any part directly, and if there's no part on our side
|
// We only render the stilt if we don't intersect with any part directly, and if there's no part on our side
|
||||||
if( renderStilt && busBounds == null && layer == BlockRenderLayer.CUTOUT )
|
if( renderStilt && busBounds == null && layer == BlockRenderLayer.CUTOUT )
|
||||||
{
|
{
|
||||||
@@ -186,36 +215,42 @@ public class FacadeBuilder
|
|||||||
|
|
||||||
IBakedModel blockModel = blockRendererDispatcher.getModelForState( blockState );
|
IBakedModel blockModel = blockRendererDispatcher.getModelForState( blockState );
|
||||||
|
|
||||||
int color = 0xffffff;
|
final int color;
|
||||||
try
|
|
||||||
{
|
|
||||||
blockColors.getColor( blockState );
|
|
||||||
}
|
|
||||||
catch( final Throwable ignored )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
if( translucent )
|
if( translucent )
|
||||||
{
|
{
|
||||||
color &= 0xFFFFFF;
|
color = 0x4CFFFFFF;
|
||||||
color |= 0x4C000000;
|
|
||||||
builder.setColor( color );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
builder.setColorRGB( color );
|
color = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Cache this
|
// TODO: Cache this
|
||||||
for( EnumFacing facing : facadeState.getOpenFaces() )
|
for( EnumFacing facing : facadeState.getOpenFaces() )
|
||||||
{
|
{
|
||||||
TextureAtlasSprite sprite = getSprite( blockModel, blockState, facing, rand );
|
TextureAtlasAndTint spriteAndTint = getSprite( blockModel, blockState, facing, rand );
|
||||||
if( sprite != null )
|
if( spriteAndTint != null && spriteAndTint.sprite != null )
|
||||||
{
|
{
|
||||||
builder.setTexture( facing, sprite );
|
// Use the tint color from the item stack here, which is based upon the assumption that the
|
||||||
|
// model used for the block will use the same meaning for tint indices as the item model does
|
||||||
|
if( spriteAndTint.tint != -1 )
|
||||||
|
{
|
||||||
|
int tintColor = facadeState.resolveTintColor( spriteAndTint.tint );
|
||||||
|
|
||||||
|
// Still apply the transparency color
|
||||||
|
tintColor &= 0xFFFFFF;
|
||||||
|
tintColor |= color & 0xFF000000;
|
||||||
|
builder.setColor( tintColor );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
builder.setColor( color );
|
||||||
|
}
|
||||||
|
builder.setTexture( facing, spriteAndTint.sprite );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
builder.setColor( color );
|
||||||
builder.setTexture( facing, facadeTexture );
|
builder.setTexture( facing, facadeTexture );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -431,4 +466,34 @@ public class FacadeBuilder
|
|||||||
throw new IllegalArgumentException( "Unsupported face: " + side );
|
throw new IllegalArgumentException( "Unsupported face: " + side );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TextureAtlasAndTint
|
||||||
|
{
|
||||||
|
private final TextureAtlasSprite sprite;
|
||||||
|
private final int tint;
|
||||||
|
|
||||||
|
private TextureAtlasAndTint( BakedQuad quad )
|
||||||
|
{
|
||||||
|
this.sprite = quad.getSprite();
|
||||||
|
this.tint = quad.getTintIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
private TextureAtlasAndTint( TextureAtlasSprite sprite, int tint )
|
||||||
|
{
|
||||||
|
this.sprite = sprite;
|
||||||
|
this.tint = tint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TextureAtlasSprite getSprite()
|
||||||
|
{
|
||||||
|
return sprite;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTint()
|
||||||
|
{
|
||||||
|
return tint;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ package appeng.client.render.cablebus;
|
|||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
|
||||||
|
|
||||||
@@ -19,10 +21,14 @@ public class FacadeRenderState
|
|||||||
// Which faces of the cube should be rendered for this particular facade
|
// Which faces of the cube should be rendered for this particular facade
|
||||||
private final EnumSet<EnumFacing> openFaces;
|
private final EnumSet<EnumFacing> openFaces;
|
||||||
|
|
||||||
public FacadeRenderState( IBlockState sourceBlock, EnumSet<EnumFacing> openFaces )
|
// For resolving the tint indices of a facade
|
||||||
|
private final ItemStack textureItem;
|
||||||
|
|
||||||
|
public FacadeRenderState( IBlockState sourceBlock, EnumSet<EnumFacing> openFaces, ItemStack textureItem )
|
||||||
{
|
{
|
||||||
this.sourceBlock = sourceBlock;
|
this.sourceBlock = sourceBlock;
|
||||||
this.openFaces = openFaces;
|
this.openFaces = openFaces;
|
||||||
|
this.textureItem = textureItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IBlockState getSourceBlock()
|
public IBlockState getSourceBlock()
|
||||||
@@ -35,4 +41,9 @@ public class FacadeRenderState
|
|||||||
return openFaces;
|
return openFaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int resolveTintColor( int tintIndex )
|
||||||
|
{
|
||||||
|
return Minecraft.getMinecraft().getItemColors().getColorFromItemstack( textureItem, tintIndex );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
package appeng.client.render.tesr;
|
package appeng.client.render.tesr;
|
||||||
|
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.model.ModelChest;
|
import net.minecraft.client.model.ModelChest;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
@@ -70,14 +71,8 @@ public class SkyChestTESR extends TileEntitySpecialRenderer<TileSkyChest>
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( te != null )
|
SkyChestType chestType = getChestType( te );
|
||||||
{
|
this.bindTexture( chestType == SkyChestType.STONE ? TEXTURE_STONE : TEXTURE_BLOCK );
|
||||||
this.bindTexture( ( (BlockSkyChest) te.getBlockType() ).type == SkyChestType.STONE ? TEXTURE_STONE : TEXTURE_BLOCK );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.bindTexture( TEXTURE_BLOCK );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GlStateManager.pushMatrix();
|
GlStateManager.pushMatrix();
|
||||||
@@ -128,4 +123,20 @@ public class SkyChestTESR extends TileEntitySpecialRenderer<TileSkyChest>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Defensively determine the sky chest type
|
||||||
|
private static SkyChestType getChestType( TileSkyChest te )
|
||||||
|
{
|
||||||
|
if( te == null )
|
||||||
|
{
|
||||||
|
return SkyChestType.BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
Block blockType = te.getBlockType();
|
||||||
|
if( blockType instanceof BlockSkyChest )
|
||||||
|
{
|
||||||
|
return ( (BlockSkyChest) blockType ).type;
|
||||||
|
}
|
||||||
|
return SkyChestType.BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
final ItemStack a = stack == null ? null : stack.getItemStack();
|
final ItemStack a = stack == null ? null : stack.getItemStack();
|
||||||
final ItemStack b = this.clientRequestedTargetItem == null ? null : this.clientRequestedTargetItem.getItemStack();
|
final ItemStack b = this.clientRequestedTargetItem == null ? null : this.clientRequestedTargetItem.getItemStack();
|
||||||
|
|
||||||
if( Platform.isSameItemPrecise( a, b ) )
|
if( Platform.itemComparisons().isSameItem( a, b ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -265,7 +265,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
final PacketPartialItem ppi = new PacketPartialItem( page, miniPackets.size(), packet );
|
final PacketPartialItem ppi = new PacketPartialItem( page, miniPackets.size(), packet );
|
||||||
page++;
|
page++;
|
||||||
NetworkHandler.instance.sendToServer( ppi );
|
NetworkHandler.instance().sendToServer( ppi );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
@@ -438,13 +438,11 @@ public abstract class AEBaseContainer extends Container
|
|||||||
|
|
||||||
if( Platform.isServer() )
|
if( Platform.isServer() )
|
||||||
{
|
{
|
||||||
for( final Object crafter : this.listeners )
|
for( final IContainerListener listener : this.listeners )
|
||||||
{
|
{
|
||||||
final IContainerListener IContainerListener = (IContainerListener) crafter;
|
|
||||||
|
|
||||||
for( final SyncData sd : this.syncData.values() )
|
for( final SyncData sd : this.syncData.values() )
|
||||||
{
|
{
|
||||||
sd.tick( IContainerListener );
|
sd.tick( listener );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -545,7 +543,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
|
|
||||||
if( !( cs.isPlayerSide() ) && cs instanceof SlotFake )
|
if( !( cs.isPlayerSide() ) && cs instanceof SlotFake )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( destination, tis ) )
|
if( Platform.itemComparisons().isSameItem( destination, tis ) )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -577,7 +575,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
final ItemStack t = d.getStack();
|
final ItemStack t = d.getStack();
|
||||||
|
|
||||||
if( Platform.isSameItemPrecise( tis, t ) ) // t.isItemEqual(tis))
|
if( Platform.itemComparisons().isSameItem( tis, t ) ) // t.isItemEqual(tis))
|
||||||
{
|
{
|
||||||
int maxSize = t.getMaxStackSize();
|
int maxSize = t.getMaxStackSize();
|
||||||
if( maxSize > d.getSlotStackLimit() )
|
if( maxSize > d.getSlotStackLimit() )
|
||||||
@@ -629,7 +627,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
final ItemStack t = d.getStack();
|
final ItemStack t = d.getStack();
|
||||||
|
|
||||||
if( Platform.isSameItemPrecise( t, tis ) )
|
if( Platform.itemComparisons().isSameItem( t, tis ) )
|
||||||
{
|
{
|
||||||
int maxSize = t.getMaxStackSize();
|
int maxSize = t.getMaxStackSize();
|
||||||
if( d.getSlotStackLimit() < maxSize )
|
if( d.getSlotStackLimit() < maxSize )
|
||||||
@@ -795,7 +793,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
if( hand == null )
|
if( hand == null )
|
||||||
{
|
{
|
||||||
is.stackSize--;
|
is.stackSize = Math.max( 1, is.stackSize - 1 );
|
||||||
}
|
}
|
||||||
else if( hand.isItemEqual( is ) )
|
else if( hand.isItemEqual( is ) )
|
||||||
{
|
{
|
||||||
@@ -929,7 +927,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
liftQty = 0;
|
liftQty = 0;
|
||||||
}
|
}
|
||||||
if( !Platform.isSameItemPrecise( slotItem.getItemStack(), item ) )
|
if( !Platform.itemComparisons().isSameItem( slotItem.getItemStack(), item ) )
|
||||||
{
|
{
|
||||||
liftQty = 0;
|
liftQty = 0;
|
||||||
}
|
}
|
||||||
@@ -1105,7 +1103,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketInventoryAction( InventoryAction.UPDATE_HAND, 0, AEItemStack.create( p.inventory.getItemStack() ) ), p );
|
NetworkHandler.instance().sendTo( new PacketInventoryAction( InventoryAction.UPDATE_HAND, 0, AEItemStack.create( p.inventory.getItemStack() ) ), p );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -1174,7 +1172,7 @@ public abstract class AEBaseContainer extends Container
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketValueConfig( "CustomName", this.getCustomName() ), (EntityPlayerMP) this.getInventoryPlayer().player );
|
NetworkHandler.instance().sendTo( new PacketValueConfig( "CustomName", this.getCustomName() ), (EntityPlayerMP) this.getInventoryPlayer().player );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class SyncData
|
|||||||
{
|
{
|
||||||
if( o instanceof EntityPlayerMP )
|
if( o instanceof EntityPlayerMP )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketValueConfig( "SyncDat." + this.channel, (String) val ), (EntityPlayerMP) o );
|
NetworkHandler.instance().sendTo( new PacketValueConfig( "SyncDat." + this.channel, (String) val ), (EntityPlayerMP) o );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( this.field.getType().isEnum() )
|
else if( this.field.getType().isEnum() )
|
||||||
@@ -97,7 +97,10 @@ public class SyncData
|
|||||||
}
|
}
|
||||||
else if( val instanceof Long || val.getClass() == long.class )
|
else if( val instanceof Long || val.getClass() == long.class )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketProgressBar( this.channel, (Long) val ), (EntityPlayerMP) o );
|
if( o instanceof EntityPlayerMP )
|
||||||
|
{
|
||||||
|
NetworkHandler.instance().sendTo( new PacketProgressBar( this.channel, (Long) val ), (EntityPlayerMP) o );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if( val instanceof Boolean || val.getClass() == boolean.class )
|
else if( val instanceof Boolean || val.getClass() == boolean.class )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.inventory.IContainerListener;
|
import net.minecraft.inventory.IContainerListener;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
|
||||||
@@ -151,22 +152,24 @@ public class ContainerCellWorkbench extends ContainerUpgradeable
|
|||||||
this.setValidContainer( false );
|
this.setValidContainer( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( final Object crafter : this.listeners )
|
for( final IContainerListener listener : this.listeners )
|
||||||
{
|
{
|
||||||
final IContainerListener IContainerListener = (IContainerListener) crafter;
|
|
||||||
|
|
||||||
if( this.prevStack != is )
|
if( this.prevStack != is )
|
||||||
{
|
{
|
||||||
// if the bars changed an item was probably made, so just send shit!
|
// if the bars changed an item was probably made, so just send shit!
|
||||||
for( final Object s : this.inventorySlots )
|
for( final Slot s : this.inventorySlots )
|
||||||
{
|
{
|
||||||
if( s instanceof OptionalSlotRestrictedInput )
|
if( s instanceof OptionalSlotRestrictedInput )
|
||||||
{
|
{
|
||||||
final OptionalSlotRestrictedInput sri = (OptionalSlotRestrictedInput) s;
|
final OptionalSlotRestrictedInput sri = (OptionalSlotRestrictedInput) s;
|
||||||
IContainerListener.sendSlotContents( this, sri.slotNumber, sri.getStack() );
|
listener.sendSlotContents( this, sri.slotNumber, sri.getStack() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
( (EntityPlayerMP) IContainerListener ).isChangingQuantityOnly = false;
|
|
||||||
|
if( listener instanceof EntityPlayerMP )
|
||||||
|
{
|
||||||
|
( (EntityPlayerMP) listener ).isChangingQuantityOnly = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -263,11 +263,11 @@ public class ContainerCraftConfirm extends AEBaseContainer
|
|||||||
{
|
{
|
||||||
if( g instanceof EntityPlayer )
|
if( g instanceof EntityPlayer )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( a, (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( a, (EntityPlayerMP) g );
|
||||||
NetworkHandler.instance.sendTo( b, (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( b, (EntityPlayerMP) g );
|
||||||
if( c != null )
|
if( c != null )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( c, (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( c, (EntityPlayerMP) g );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -352,7 +352,7 @@ public class ContainerCraftConfirm extends AEBaseContainer
|
|||||||
this.setAutoStart( false );
|
this.setAutoStart( false );
|
||||||
if( g != null && originalGui != null && this.getOpenContext() != null )
|
if( g != null && originalGui != null && this.getOpenContext() != null )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketSwitchGuis( originalGui ), (EntityPlayerMP) this.getInventoryPlayer().player );
|
NetworkHandler.instance().sendTo( new PacketSwitchGuis( originalGui ), (EntityPlayerMP) this.getInventoryPlayer().player );
|
||||||
|
|
||||||
final TileEntity te = this.getOpenContext().getTile();
|
final TileEntity te = this.getOpenContext().getTile();
|
||||||
Platform.openGUI( this.getInventoryPlayer().player, te, this.getOpenContext().getSide(), originalGui );
|
Platform.openGUI( this.getInventoryPlayer().player, te, this.getOpenContext().getSide(), originalGui );
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketValueConfig( "CraftingStatus", "Clear" ), (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( new PacketValueConfig( "CraftingStatus", "Clear" ), (EntityPlayerMP) g );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -208,17 +208,17 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH
|
|||||||
{
|
{
|
||||||
if( !a.isEmpty() )
|
if( !a.isEmpty() )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( a, (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( a, (EntityPlayerMP) g );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !b.isEmpty() )
|
if( !b.isEmpty() )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( b, (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( b, (EntityPlayerMP) g );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !c.isEmpty() )
|
if( !c.isEmpty() )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( c, (EntityPlayerMP) g );
|
NetworkHandler.instance().sendTo( c, (EntityPlayerMP) g );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres
|
|||||||
{
|
{
|
||||||
for( final ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() )
|
for( final ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( optional, is ) )
|
if( Platform.itemComparisons().isSameItem( optional, is ) )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -126,18 +126,18 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres
|
|||||||
|
|
||||||
for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() )
|
for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() )
|
||||||
{
|
{
|
||||||
final boolean matchA = ( top == null && !recipe.getTopOptional().isPresent() ) || ( Platform.isSameItemPrecise( top, recipe.getTopOptional().orElse( null ) ) ) && // and...
|
final boolean matchA = ( top == null && !recipe.getTopOptional().isPresent() ) || ( Platform.itemComparisons().isSameItem( top, recipe.getTopOptional().orElse( null ) ) ) && // and...
|
||||||
( bot == null && !recipe.getBottomOptional().isPresent() ) | ( Platform.isSameItemPrecise( bot, recipe.getBottomOptional().orElse( null ) ) );
|
( bot == null && !recipe.getBottomOptional().isPresent() ) | ( Platform.itemComparisons().isSameItem( bot, recipe.getBottomOptional().orElse( null ) ) );
|
||||||
|
|
||||||
final boolean matchB = ( bot == null && !recipe.getTopOptional().isPresent() ) || ( Platform.isSameItemPrecise( bot, recipe.getTopOptional().orElse( null ) ) ) && // and...
|
final boolean matchB = ( bot == null && !recipe.getTopOptional().isPresent() ) || ( Platform.itemComparisons().isSameItem( bot, recipe.getTopOptional().orElse( null ) ) ) && // and...
|
||||||
( top == null && !recipe.getBottomOptional().isPresent() ) | ( Platform.isSameItemPrecise( top, recipe.getBottomOptional().orElse( null ) ) );
|
( top == null && !recipe.getBottomOptional().isPresent() ) | ( Platform.itemComparisons().isSameItem( top, recipe.getBottomOptional().orElse( null ) ) );
|
||||||
|
|
||||||
if( matchA || matchB )
|
if( matchA || matchB )
|
||||||
{
|
{
|
||||||
matches = true;
|
matches = true;
|
||||||
for( final ItemStack option : recipe.getInputs() )
|
for( final ItemStack option : recipe.getInputs() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( is, option ) )
|
if( Platform.itemComparisons().isSameItem( is, option ) )
|
||||||
{
|
{
|
||||||
found = true;
|
found = true;
|
||||||
}
|
}
|
||||||
@@ -174,13 +174,13 @@ public class ContainerInscriber extends ContainerUpgradeable implements IProgres
|
|||||||
boolean isValid = false;
|
boolean isValid = false;
|
||||||
for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() )
|
for( final IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( recipe.getTopOptional().orElse( null ), otherSlot ) )
|
if( Platform.itemComparisons().isSameItem( recipe.getTopOptional().orElse( null ), otherSlot ) )
|
||||||
{
|
{
|
||||||
isValid = Platform.isSameItemPrecise( is, recipe.getBottomOptional().orElse( null ) );
|
isValid = Platform.itemComparisons().isSameItem( is, recipe.getBottomOptional().orElse( null ) );
|
||||||
}
|
}
|
||||||
else if( Platform.isSameItemPrecise( recipe.getBottomOptional().orElse( null ), otherSlot ) )
|
else if( Platform.itemComparisons().isSameItem( recipe.getBottomOptional().orElse( null ), otherSlot ) )
|
||||||
{
|
{
|
||||||
isValid = Platform.isSameItemPrecise( is, recipe.getTopOptional().orElse( null ) );
|
isValid = Platform.itemComparisons().isSameItem( is, recipe.getTopOptional().orElse( null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( isValid )
|
if( isValid )
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ public final class ContainerInterfaceTerminal extends AEBaseContainer
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketCompressedNBT( this.data ), (EntityPlayerMP) this.getPlayerInv().player );
|
NetworkHandler.instance().sendTo( new PacketCompressedNBT( this.data ), (EntityPlayerMP) this.getPlayerInv().player );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -186,15 +186,18 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
|||||||
if( sideLocal != sideRemote )
|
if( sideLocal != sideRemote )
|
||||||
{
|
{
|
||||||
this.clientCM.putSetting( set, sideLocal );
|
this.clientCM.putSetting( set, sideLocal );
|
||||||
for( final Object crafter : this.listeners )
|
for( final IContainerListener crafter : this.listeners )
|
||||||
{
|
{
|
||||||
try
|
if( crafter instanceof EntityPlayerMP )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketValueConfig( set.name(), sideLocal.name() ), (EntityPlayerMP) crafter );
|
try
|
||||||
}
|
{
|
||||||
catch( final IOException e )
|
NetworkHandler.instance().sendTo( new PacketValueConfig( set.name(), sideLocal.name() ), (EntityPlayerMP) crafter );
|
||||||
{
|
}
|
||||||
AELog.debug( e );
|
catch( final IOException e )
|
||||||
|
{
|
||||||
|
AELog.debug( e );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -230,7 +233,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
|||||||
{
|
{
|
||||||
if( c instanceof EntityPlayer )
|
if( c instanceof EntityPlayer )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( piu, (EntityPlayerMP) c );
|
NetworkHandler.instance().sendTo( piu, (EntityPlayerMP) c );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -258,6 +261,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
|||||||
|
|
||||||
super.detectAndSendChanges();
|
super.detectAndSendChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updatePowerStatus()
|
protected void updatePowerStatus()
|
||||||
@@ -325,14 +329,14 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
|||||||
}
|
}
|
||||||
catch( final BufferOverflowException boe )
|
catch( final BufferOverflowException boe )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( piu, (EntityPlayerMP) c );
|
NetworkHandler.instance().sendTo( piu, (EntityPlayerMP) c );
|
||||||
|
|
||||||
piu = new PacketMEInventoryUpdate();
|
piu = new PacketMEInventoryUpdate();
|
||||||
piu.appendItem( send );
|
piu.appendItem( send );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkHandler.instance.sendTo( piu, (EntityPlayerMP) c );
|
NetworkHandler.instance().sendTo( piu, (EntityPlayerMP) c );
|
||||||
}
|
}
|
||||||
catch( final IOException e )
|
catch( final IOException e )
|
||||||
{
|
{
|
||||||
@@ -340,7 +344,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeListener( final IContainerListener c )
|
public void removeListener( final IContainerListener c )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class ContainerMEPortableCell extends ContainerMEMonitorable
|
|||||||
{
|
{
|
||||||
if( currentItem != null )
|
if( currentItem != null )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItem( this.civ.getItemStack(), currentItem ) )
|
if( Platform.itemComparisons().isEqualItem( this.civ.getItemStack(), currentItem ) )
|
||||||
{
|
{
|
||||||
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.civ.getItemStack() );
|
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.civ.getItemStack() );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ public class ContainerNetworkStatus extends AEBaseContainer
|
|||||||
{
|
{
|
||||||
if( c instanceof EntityPlayer )
|
if( c instanceof EntityPlayer )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( piu, (EntityPlayerMP) c );
|
NetworkHandler.instance().sendTo( piu, (EntityPlayerMP) c );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class ContainerNetworkTool extends AEBaseContainer
|
|||||||
{
|
{
|
||||||
if( currentItem != null )
|
if( currentItem != null )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItem( this.toolInv.getItemStack(), currentItem ) )
|
if( Platform.itemComparisons().isEqualItem( this.toolInv.getItemStack(), currentItem ) )
|
||||||
{
|
{
|
||||||
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.toolInv.getItemStack() );
|
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.toolInv.getItemStack() );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA
|
|||||||
if( output != null && !this.isPattern( output ) )
|
if( output != null && !this.isPattern( output ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}// if nothing is there we should snag a new pattern.
|
} // if nothing is there we should snag a new pattern.
|
||||||
else if( output == null )
|
else if( output == null )
|
||||||
{
|
{
|
||||||
output = this.patternSlotIN.getStack();
|
output = this.patternSlotIN.getStack();
|
||||||
@@ -414,7 +414,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA
|
|||||||
|
|
||||||
final IRecipe rr = Platform.findMatchingRecipe( real, p.worldObj );
|
final IRecipe rr = Platform.findMatchingRecipe( real, p.worldObj );
|
||||||
|
|
||||||
if( rr == r && Platform.isSameItemPrecise( rr.getCraftingResult( real ), is ) )
|
if( rr == r && Platform.itemComparisons().isSameItem( rr.getCraftingResult( real ), is ) )
|
||||||
{
|
{
|
||||||
final SlotCrafting sc = new SlotCrafting( p, real, this.cOut, 0, 0, 0 );
|
final SlotCrafting sc = new SlotCrafting( p, real, this.cOut, 0, 0, 0 );
|
||||||
sc.onPickupFromSlot( p, is );
|
sc.onPickupFromSlot( p, is );
|
||||||
@@ -483,19 +483,19 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA
|
|||||||
{
|
{
|
||||||
if( s == this.patternSlotOUT && Platform.isServer() )
|
if( s == this.patternSlotOUT && Platform.isServer() )
|
||||||
{
|
{
|
||||||
for( final Object crafter : this.listeners )
|
for( final IContainerListener listener : this.listeners )
|
||||||
{
|
{
|
||||||
final IContainerListener IContainerListener = (IContainerListener) crafter;
|
for( final Slot slot : this.inventorySlots )
|
||||||
|
|
||||||
for( final Object g : this.inventorySlots )
|
|
||||||
{
|
{
|
||||||
if( g instanceof OptionalSlotFake || g instanceof SlotFakeCraftingMatrix )
|
if( slot instanceof OptionalSlotFake || slot instanceof SlotFakeCraftingMatrix )
|
||||||
{
|
{
|
||||||
final Slot sri = (Slot) g;
|
listener.sendSlotContents( this, slot.slotNumber, slot.getStack() );
|
||||||
IContainerListener.sendSlotContents( this, sri.slotNumber, sri.getStack() );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
( (EntityPlayerMP) IContainerListener ).isChangingQuantityOnly = false;
|
if( listener instanceof EntityPlayerMP )
|
||||||
|
{
|
||||||
|
( (EntityPlayerMP) listener ).isChangingQuantityOnly = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.detectAndSendChanges();
|
this.detectAndSendChanges();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class ContainerQuartzKnife extends AEBaseContainer implements IAEAppEngIn
|
|||||||
{
|
{
|
||||||
if( currentItem != null )
|
if( currentItem != null )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItem( this.toolInv.getItemStack(), currentItem ) )
|
if( Platform.itemComparisons().isEqualItem( this.toolInv.getItemStack(), currentItem ) )
|
||||||
{
|
{
|
||||||
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.toolInv.getItemStack() );
|
this.getPlayerInv().setInventorySlotContents( this.getPlayerInv().currentItem, this.toolInv.getItemStack() );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,11 +168,10 @@ public class ContainerSecurityStation extends ContainerMEMonitorable implements
|
|||||||
this.wirelessOut.putStack( term );
|
this.wirelessOut.putStack( term );
|
||||||
|
|
||||||
// update the two slots in question...
|
// update the two slots in question...
|
||||||
for( final Object crafter : this.listeners )
|
for( final IContainerListener listener : this.listeners )
|
||||||
{
|
{
|
||||||
final IContainerListener IContainerListener = (IContainerListener) crafter;
|
listener.sendSlotContents( this, this.wirelessIn.slotNumber, this.wirelessIn.getStack() );
|
||||||
IContainerListener.sendSlotContents( this, this.wirelessIn.slotNumber, this.wirelessIn.getStack() );
|
listener.sendSlotContents( this, this.wirelessOut.slotNumber, this.wirelessOut.getStack() );
|
||||||
IContainerListener.sendSlotContents( this, this.wirelessOut.slotNumber, this.wirelessOut.getStack() );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSl
|
|||||||
{
|
{
|
||||||
if( currentItem != null )
|
if( currentItem != null )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItem( this.tbInventory.getItemStack(), currentItem ) )
|
if( Platform.itemComparisons().isEqualItem( this.tbInventory.getItemStack(), currentItem ) )
|
||||||
{
|
{
|
||||||
this.getPlayerInv().setInventorySlotContents( this.tbSlot, this.tbInventory.getItemStack() );
|
this.getPlayerInv().setInventorySlotContents( this.tbSlot, this.tbInventory.getItemStack() );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ public class ContainerWireless extends AEBaseContainer
|
|||||||
{
|
{
|
||||||
final int boosters = this.boosterSlot.getStack() == null ? 0 : this.boosterSlot.getStack().stackSize;
|
final int boosters = this.boosterSlot.getStack() == null ? 0 : this.boosterSlot.getStack().stackSize;
|
||||||
|
|
||||||
this.setRange( (long) ( 10 * AEConfig.instance.wireless_getMaxRange( boosters ) ) );
|
this.setRange( (long) ( 10 * AEConfig.instance().wireless_getMaxRange( boosters ) ) );
|
||||||
this.setDrain( (long) ( 100 * AEConfig.instance.wireless_getPowerDrain( boosters ) ) );
|
this.setDrain( (long) ( 100 * AEConfig.instance().wireless_getPowerDrain( boosters ) ) );
|
||||||
|
|
||||||
super.detectAndSendChanges();
|
super.detectAndSendChanges();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class ContainerWirelessTerm extends ContainerMEPortableCell
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.setPowerMultiplier( AEConfig.instance.wireless_getDrainRate( this.wirelessTerminalGUIObject.getRange() ) );
|
this.setPowerMultiplier( AEConfig.instance().wireless_getDrainRate( this.wirelessTerminalGUIObject.getRange() ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ public class SlotCraftingTerm extends AppEngCraftingSlot
|
|||||||
// update crafting matrix...
|
// update crafting matrix...
|
||||||
ItemStack is = this.getStack();
|
ItemStack is = this.getStack();
|
||||||
|
|
||||||
if( is != null && Platform.isSameItem( request, is ) )
|
if( is != null && Platform.itemComparisons().isEqualItem( request, is ) )
|
||||||
{
|
{
|
||||||
final ItemStack[] set = new ItemStack[this.getPattern().getSizeInventory()];
|
final ItemStack[] set = new ItemStack[this.getPattern().getSizeInventory()];
|
||||||
|
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ public class SlotRestrictedInput extends AppEngSlot
|
|||||||
|
|
||||||
for( final ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() )
|
for( final ItemStack optional : AEApi.instance().registries().inscriber().getOptionals() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( optional, i ) )
|
if( Platform.itemComparisons().isSameItem( optional, i ) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -258,7 +258,7 @@ public class SlotRestrictedInput extends AppEngSlot
|
|||||||
|
|
||||||
public static boolean isMetalIngot( final ItemStack i )
|
public static boolean isMetalIngot( final ItemStack i )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( i, new ItemStack( Items.IRON_INGOT ) ) )
|
if( Platform.itemComparisons().isSameItem( i, new ItemStack( Items.IRON_INGOT ) ) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -267,7 +267,7 @@ public class SlotRestrictedInput extends AppEngSlot
|
|||||||
{
|
{
|
||||||
for( final ItemStack ingot : OreDictionary.getOres( "ingot" + name ) )
|
for( final ItemStack ingot : OreDictionary.getOres( "ingot" + name ) )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( i, ingot ) )
|
if( Platform.itemComparisons().isSameItem( i, ingot ) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,11 +24,12 @@ import java.util.Arrays;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import net.minecraftforge.common.config.Property;
|
import net.minecraftforge.common.config.Property;
|
||||||
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
|
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
|
||||||
import net.minecraftforge.fml.common.ModContainer;
|
import net.minecraftforge.fml.common.ModContainer;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
|
||||||
@@ -52,72 +53,95 @@ import appeng.util.Platform;
|
|||||||
public final class AEConfig extends Configuration implements IConfigurableObject, IConfigManagerHost
|
public final class AEConfig extends Configuration implements IConfigurableObject, IConfigManagerHost
|
||||||
{
|
{
|
||||||
|
|
||||||
public static final double TUNNEL_POWER_LOSS = 0.05;
|
|
||||||
public static final String VERSION = "@version@";
|
public static final String VERSION = "@version@";
|
||||||
public static final String CHANNEL = "@aechannel@";
|
public static final String CHANNEL = "@aechannel@";
|
||||||
public static final String PACKET_CHANNEL = "AE";
|
public static final String PACKET_CHANNEL = "AE";
|
||||||
public static AEConfig instance;
|
|
||||||
public final IConfigManager settings = new ConfigManager( this );
|
|
||||||
public final EnumSet<AEFeature> featureFlags = EnumSet.noneOf( AEFeature.class );
|
|
||||||
public final int[] craftByStacks = { 1, 10, 100, 1000 };
|
|
||||||
public final int[] priorityByStacks = { 1, 10, 100, 1000 };
|
|
||||||
public final int[] levelByStacks = { 1, 10, 100, 1000 };
|
|
||||||
private final double WirelessHighWirelessCount = 64;
|
|
||||||
private final File configFile;
|
|
||||||
public int storageBiomeID = -1;
|
|
||||||
public int storageProviderID = -1;
|
|
||||||
public int formationPlaneEntityLimit = 128;
|
|
||||||
public float spawnChargedChance = 0.92f;
|
|
||||||
public int quartzOresPerCluster = 4;
|
|
||||||
public int quartzOresClusterAmount = 15;
|
|
||||||
public final int chargedChange = 4;
|
|
||||||
public int minMeteoriteDistance = 707;
|
|
||||||
public int minMeteoriteDistanceSq = this.minMeteoriteDistance * this.minMeteoriteDistance;
|
|
||||||
public double spatialPowerExponent = 1.35;
|
|
||||||
public double spatialPowerMultiplier = 1250.0;
|
|
||||||
public String[] grinderOres = {
|
|
||||||
// Vanilla Items
|
|
||||||
"Obsidian", "Ender", "EnderPearl", "Coal", "Iron", "Gold", "Charcoal", "NetherQuartz",
|
|
||||||
// Common Mod Ores
|
|
||||||
"Copper", "Tin", "Silver", "Lead", "Bronze",
|
|
||||||
// AE
|
|
||||||
"CertusQuartz", "Wheat", "Fluix",
|
|
||||||
// Other Mod Ores
|
|
||||||
"Brass", "Platinum", "Nickel", "Invar", "Aluminium", "Electrum", "Osmium", "Zinc" };
|
|
||||||
public double oreDoublePercentage = 90.0;
|
|
||||||
public boolean enableEffects = true;
|
|
||||||
public boolean useLargeFonts = false;
|
|
||||||
public boolean useColoredCraftingStatus;
|
|
||||||
public int wirelessTerminalBattery = 1600000;
|
|
||||||
public int entropyManipulatorBattery = 200000;
|
|
||||||
public int matterCannonBattery = 200000;
|
|
||||||
public int portableCellBattery = 20000;
|
|
||||||
public int colorApplicatorBattery = 20000;
|
|
||||||
public int chargedStaffBattery = 8000;
|
|
||||||
public boolean disableColoredCableRecipesInJEI = true;
|
|
||||||
public boolean updatable = false;
|
|
||||||
public double meteoriteClusterChance = 0.1;
|
|
||||||
public double meteoriteSpawnChance = 0.3;
|
|
||||||
public int[] meteoriteDimensionWhitelist = { 0 };
|
|
||||||
public int craftingCalculationTimePerTick = 5;
|
|
||||||
PowerUnits selectedPowerUnit = PowerUnits.AE;
|
|
||||||
private double WirelessBaseCost = 8;
|
|
||||||
private double WirelessCostMultiplier = 1;
|
|
||||||
private double WirelessTerminalDrainMultiplier = 1;
|
|
||||||
private double WirelessBaseRange = 16;
|
|
||||||
private double WirelessBoosterRangeMultiplier = 1;
|
|
||||||
private double WirelessBoosterExp = 1.5;
|
|
||||||
|
|
||||||
public AEConfig( final File configFile )
|
// Config instance
|
||||||
|
private static AEConfig instance;
|
||||||
|
|
||||||
|
// Default Grindstone ores
|
||||||
|
private static final String[] ORES_VANILLA = { "Obsidian", "Ender", "EnderPearl", "Coal", "Iron", "Gold", "Charcoal", "NetherQuartz" };
|
||||||
|
private static final String[] ORES_AE = { "CertusQuartz", "Wheat", "Fluix" };
|
||||||
|
private static final String[] ORES_COMMON = { "Copper", "Tin", "Silver", "Lead", "Bronze" };
|
||||||
|
private static final String[] ORES_MISC = { "Brass", "Platinum", "Nickel", "Invar", "Aluminium", "Electrum", "Osmium", "Zinc" };
|
||||||
|
|
||||||
|
// Default Energy Conversion Rates
|
||||||
|
private static final double DEFAULT_IC2_EXCHANGE = 2.0;
|
||||||
|
private static final double DEFAULT_RF_EXCHANGE = 0.5;
|
||||||
|
|
||||||
|
private final IConfigManager settings = new ConfigManager( this );
|
||||||
|
|
||||||
|
private final EnumSet<AEFeature> featureFlags = EnumSet.noneOf( AEFeature.class );
|
||||||
|
private final File configFile;
|
||||||
|
private boolean updatable = false;
|
||||||
|
|
||||||
|
// Misc
|
||||||
|
private boolean removeCrashingItemsOnLoad = false;
|
||||||
|
private int formationPlaneEntityLimit = 128;
|
||||||
|
private boolean enableEffects = true;
|
||||||
|
private boolean useLargeFonts = false;
|
||||||
|
private boolean useColoredCraftingStatus;
|
||||||
|
private boolean disableColoredCableRecipesInJEI = true;
|
||||||
|
private int craftingCalculationTimePerTick = 5;
|
||||||
|
private PowerUnits selectedPowerUnit = PowerUnits.AE;
|
||||||
|
|
||||||
|
// GUI Buttons
|
||||||
|
private final int[] craftByStacks = { 1, 10, 100, 1000 };
|
||||||
|
private final int[] priorityByStacks = { 1, 10, 100, 1000 };
|
||||||
|
private final int[] levelByStacks = { 1, 10, 100, 1000 };
|
||||||
|
|
||||||
|
// Spatial IO/Dimension
|
||||||
|
private int storageBiomeID = -1;
|
||||||
|
private int storageProviderID = -1;
|
||||||
|
private double spatialPowerExponent = 1.35;
|
||||||
|
private double spatialPowerMultiplier = 1250.0;
|
||||||
|
|
||||||
|
// Grindstone
|
||||||
|
private String[] grinderOres = Stream.of( ORES_VANILLA, ORES_AE, ORES_COMMON, ORES_MISC ).flatMap( Stream::of ).toArray( String[]::new );
|
||||||
|
private double oreDoublePercentage = 90.0;
|
||||||
|
|
||||||
|
// Batteries
|
||||||
|
private int wirelessTerminalBattery = 1600000;
|
||||||
|
private int entropyManipulatorBattery = 200000;
|
||||||
|
private int matterCannonBattery = 200000;
|
||||||
|
private int portableCellBattery = 20000;
|
||||||
|
private int colorApplicatorBattery = 20000;
|
||||||
|
private int chargedStaffBattery = 8000;
|
||||||
|
|
||||||
|
// Certus quartz
|
||||||
|
private float spawnChargedChance = 0.92f;
|
||||||
|
private int quartzOresPerCluster = 4;
|
||||||
|
private int quartzOresClusterAmount = 15;
|
||||||
|
private int chargedChange = 4;
|
||||||
|
|
||||||
|
// Meteors
|
||||||
|
private int minMeteoriteDistance = 707;
|
||||||
|
private int minMeteoriteDistanceSq = this.minMeteoriteDistance * this.minMeteoriteDistance;
|
||||||
|
private double meteoriteClusterChance = 0.1;
|
||||||
|
private int meteoriteMaximumSpawnHeight = 180;
|
||||||
|
private int[] meteoriteDimensionWhitelist = { 0 };
|
||||||
|
|
||||||
|
// Wireless
|
||||||
|
private double wirelessBaseCost = 8;
|
||||||
|
private double wirelessCostMultiplier = 1;
|
||||||
|
private double wirelessTerminalDrainMultiplier = 1;
|
||||||
|
private double wirelessBaseRange = 16;
|
||||||
|
private double wirelessBoosterRangeMultiplier = 1;
|
||||||
|
private double wirelessBoosterExp = 1.5;
|
||||||
|
private double wirelessHighWirelessCount = 64;
|
||||||
|
|
||||||
|
// Tunnels
|
||||||
|
public static final double TUNNEL_POWER_LOSS = 0.05;
|
||||||
|
|
||||||
|
private AEConfig( final File configFile )
|
||||||
{
|
{
|
||||||
super( configFile );
|
super( configFile );
|
||||||
this.configFile = configFile;
|
this.configFile = configFile;
|
||||||
|
|
||||||
FMLCommonHandler.instance().bus().register( this );
|
MinecraftForge.EVENT_BUS.register( this );
|
||||||
|
|
||||||
final double DEFAULT_IC2_EXCHANGE = 2.0;
|
|
||||||
PowerUnits.EU.conversionRatio = this.get( "PowerRatios", "IC2", DEFAULT_IC2_EXCHANGE ).getDouble( DEFAULT_IC2_EXCHANGE );
|
PowerUnits.EU.conversionRatio = this.get( "PowerRatios", "IC2", DEFAULT_IC2_EXCHANGE ).getDouble( DEFAULT_IC2_EXCHANGE );
|
||||||
final double DEFAULT_RF_EXCHANGE = 0.5;
|
|
||||||
PowerUnits.RF.conversionRatio = this.get( "PowerRatios", "Forge Energy", DEFAULT_RF_EXCHANGE ).getDouble( DEFAULT_RF_EXCHANGE );
|
PowerUnits.RF.conversionRatio = this.get( "PowerRatios", "Forge Energy", DEFAULT_RF_EXCHANGE ).getDouble( DEFAULT_RF_EXCHANGE );
|
||||||
|
|
||||||
final double usageEffective = this.get( "PowerRatios", "UsageMultiplier", 1.0 ).getDouble( 1.0 );
|
final double usageEffective = this.get( "PowerRatios", "UsageMultiplier", 1.0 ).getDouble( 1.0 );
|
||||||
@@ -126,6 +150,9 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
CondenserOutput.MATTER_BALLS.requiredPower = this.get( "Condenser", "MatterBalls", 256 ).getInt( 256 );
|
CondenserOutput.MATTER_BALLS.requiredPower = this.get( "Condenser", "MatterBalls", 256 ).getInt( 256 );
|
||||||
CondenserOutput.SINGULARITY.requiredPower = this.get( "Condenser", "Singularity", 256000 ).getInt( 256000 );
|
CondenserOutput.SINGULARITY.requiredPower = this.get( "Condenser", "Singularity", 256000 ).getInt( 256000 );
|
||||||
|
|
||||||
|
this.removeCrashingItemsOnLoad = this.get( "general", "removeCrashingItemsOnLoad", false,
|
||||||
|
"Will auto-remove items that crash when being loaded from storage. This will destroy those items instead of crashing the game!" ).getBoolean();
|
||||||
|
|
||||||
this.grinderOres = this.get( "GrindStone", "grinderOres", this.grinderOres ).getStringList();
|
this.grinderOres = this.get( "GrindStone", "grinderOres", this.grinderOres ).getStringList();
|
||||||
this.oreDoublePercentage = this.get( "GrindStone", "oreDoublePercentage", this.oreDoublePercentage ).getDouble( this.oreDoublePercentage );
|
this.oreDoublePercentage = this.get( "GrindStone", "oreDoublePercentage", this.oreDoublePercentage ).getDouble( this.oreDoublePercentage );
|
||||||
|
|
||||||
@@ -133,10 +160,12 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
this.settings.registerSetting( Settings.TERMINAL_STYLE, TerminalStyle.TALL );
|
this.settings.registerSetting( Settings.TERMINAL_STYLE, TerminalStyle.TALL );
|
||||||
this.settings.registerSetting( Settings.SEARCH_MODE, SearchBoxMode.AUTOSEARCH );
|
this.settings.registerSetting( Settings.SEARCH_MODE, SearchBoxMode.AUTOSEARCH );
|
||||||
|
|
||||||
this.spawnChargedChance = (float) ( 1.0 - this.get( "worldGen", "spawnChargedChance", 1.0 - this.spawnChargedChance ).getDouble( 1.0 - this.spawnChargedChance ) );
|
this.spawnChargedChance = (float) ( 1.0 - this.get( "worldGen", "spawnChargedChance", 1.0 - this.spawnChargedChance ).getDouble(
|
||||||
|
1.0 - this.spawnChargedChance ) );
|
||||||
this.minMeteoriteDistance = this.get( "worldGen", "minMeteoriteDistance", this.minMeteoriteDistance ).getInt( this.minMeteoriteDistance );
|
this.minMeteoriteDistance = this.get( "worldGen", "minMeteoriteDistance", this.minMeteoriteDistance ).getInt( this.minMeteoriteDistance );
|
||||||
this.meteoriteClusterChance = this.get( "worldGen", "meteoriteClusterChance", this.meteoriteClusterChance ).getDouble( this.meteoriteClusterChance );
|
this.meteoriteClusterChance = this.get( "worldGen", "meteoriteClusterChance", this.meteoriteClusterChance ).getDouble( this.meteoriteClusterChance );
|
||||||
this.meteoriteSpawnChance = this.get( "worldGen", "meteoriteSpawnChance", this.meteoriteSpawnChance ).getDouble( this.meteoriteSpawnChance );
|
this.meteoriteMaximumSpawnHeight = this.get( "worldGen", "meteoriteMaximumSpawnHeight", this.meteoriteMaximumSpawnHeight ).getInt(
|
||||||
|
this.meteoriteMaximumSpawnHeight );
|
||||||
this.meteoriteDimensionWhitelist = this.get( "worldGen", "meteoriteDimensionWhitelist", this.meteoriteDimensionWhitelist ).getIntList();
|
this.meteoriteDimensionWhitelist = this.get( "worldGen", "meteoriteDimensionWhitelist", this.meteoriteDimensionWhitelist ).getIntList();
|
||||||
|
|
||||||
this.quartzOresPerCluster = this.get( "worldGen", "quartzOresPerCluster", this.quartzOresPerCluster ).getInt( this.quartzOresPerCluster );
|
this.quartzOresPerCluster = this.get( "worldGen", "quartzOresPerCluster", this.quartzOresPerCluster ).getInt( this.quartzOresPerCluster );
|
||||||
@@ -144,16 +173,20 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
|
|
||||||
this.minMeteoriteDistanceSq = this.minMeteoriteDistance * this.minMeteoriteDistance;
|
this.minMeteoriteDistanceSq = this.minMeteoriteDistance * this.minMeteoriteDistance;
|
||||||
|
|
||||||
this.addCustomCategoryComment( "wireless", "Range= WirelessBaseRange + WirelessBoosterRangeMultiplier * Math.pow( boosters, WirelessBoosterExp )\nPowerDrain= WirelessBaseCost + WirelessCostMultiplier * Math.pow( boosters, 1 + boosters / WirelessHighWirelessCount )" );
|
this.addCustomCategoryComment( "wireless",
|
||||||
|
"Range= wirelessBaseRange + wirelessBoosterRangeMultiplier * Math.pow( boosters, wirelessBoosterExp )\nPowerDrain= wirelessBaseCost + wirelessCostMultiplier * Math.pow( boosters, 1 + boosters / wirelessHighWirelessCount )" );
|
||||||
|
|
||||||
this.WirelessBaseCost = this.get( "wireless", "WirelessBaseCost", this.WirelessBaseCost ).getDouble( this.WirelessBaseCost );
|
this.wirelessBaseCost = this.get( "wireless", "wirelessBaseCost", this.wirelessBaseCost ).getDouble( this.wirelessBaseCost );
|
||||||
this.WirelessCostMultiplier = this.get( "wireless", "WirelessCostMultiplier", this.WirelessCostMultiplier ).getDouble( this.WirelessCostMultiplier );
|
this.wirelessCostMultiplier = this.get( "wireless", "wirelessCostMultiplier", this.wirelessCostMultiplier ).getDouble( this.wirelessCostMultiplier );
|
||||||
this.WirelessBaseRange = this.get( "wireless", "WirelessBaseRange", this.WirelessBaseRange ).getDouble( this.WirelessBaseRange );
|
this.wirelessBaseRange = this.get( "wireless", "wirelessBaseRange", this.wirelessBaseRange ).getDouble( this.wirelessBaseRange );
|
||||||
this.WirelessBoosterRangeMultiplier = this.get( "wireless", "WirelessBoosterRangeMultiplier", this.WirelessBoosterRangeMultiplier ).getDouble( this.WirelessBoosterRangeMultiplier );
|
this.wirelessBoosterRangeMultiplier = this.get( "wireless", "wirelessBoosterRangeMultiplier", this.wirelessBoosterRangeMultiplier ).getDouble(
|
||||||
this.WirelessBoosterExp = this.get( "wireless", "WirelessBoosterExp", this.WirelessBoosterExp ).getDouble( this.WirelessBoosterExp );
|
this.wirelessBoosterRangeMultiplier );
|
||||||
this.WirelessTerminalDrainMultiplier = this.get( "wireless", "WirelessTerminalDrainMultiplier", this.WirelessTerminalDrainMultiplier ).getDouble( this.WirelessTerminalDrainMultiplier );
|
this.wirelessBoosterExp = this.get( "wireless", "wirelessBoosterExp", this.wirelessBoosterExp ).getDouble( this.wirelessBoosterExp );
|
||||||
|
this.wirelessTerminalDrainMultiplier = this.get( "wireless", "wirelessTerminalDrainMultiplier", this.wirelessTerminalDrainMultiplier ).getDouble(
|
||||||
|
this.wirelessTerminalDrainMultiplier );
|
||||||
|
|
||||||
this.formationPlaneEntityLimit = this.get( "automation", "formationPlaneEntityLimit", this.formationPlaneEntityLimit ).getInt( this.formationPlaneEntityLimit );
|
this.formationPlaneEntityLimit = this.get( "automation", "formationPlaneEntityLimit", this.formationPlaneEntityLimit ).getInt(
|
||||||
|
this.formationPlaneEntityLimit );
|
||||||
|
|
||||||
this.wirelessTerminalBattery = this.get( "battery", "wirelessTerminal", this.wirelessTerminalBattery ).getInt( this.wirelessTerminalBattery );
|
this.wirelessTerminalBattery = this.get( "battery", "wirelessTerminal", this.wirelessTerminalBattery ).getInt( this.wirelessTerminalBattery );
|
||||||
this.chargedStaffBattery = this.get( "battery", "chargedStaff", this.chargedStaffBattery ).getInt( this.chargedStaffBattery );
|
this.chargedStaffBattery = this.get( "battery", "chargedStaff", this.chargedStaffBattery ).getInt( this.chargedStaffBattery );
|
||||||
@@ -168,7 +201,7 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
{
|
{
|
||||||
if( feature.isVisible() )
|
if( feature.isVisible() )
|
||||||
{
|
{
|
||||||
if( this.get( "Features." + feature.category, feature.name(), feature.defaultValue ).getBoolean( feature.defaultValue ) )
|
if( this.get( "Features." + feature.category(), feature.key(), feature.isEnabled() ).getBoolean( feature.isEnabled() ) )
|
||||||
{
|
{
|
||||||
this.featureFlags.add( feature );
|
this.featureFlags.add( feature );
|
||||||
}
|
}
|
||||||
@@ -185,13 +218,14 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
final List<String> version = Arrays.asList( "59.0.0", "59.0.1", "59.0.2" );
|
final List<String> version = Arrays.asList( "59.0.0", "59.0.1", "59.0.2" );
|
||||||
if( version.contains( imb.getVersion() ) )
|
if( version.contains( imb.getVersion() ) )
|
||||||
{
|
{
|
||||||
this.featureFlags.remove( AEFeature.AlphaPass );
|
this.featureFlags.remove( AEFeature.ALPHA_PASS );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.selectedPowerUnit = PowerUnits.valueOf( this.get( "Client", "PowerUnit", this.selectedPowerUnit.name(), this.getListComment( this.selectedPowerUnit ) ).getString() );
|
this.selectedPowerUnit = PowerUnits.valueOf(
|
||||||
|
this.get( "Client", "PowerUnit", this.selectedPowerUnit.name(), this.getListComment( this.selectedPowerUnit ) ).getString() );
|
||||||
}
|
}
|
||||||
catch( final Throwable t )
|
catch( final Throwable t )
|
||||||
{
|
{
|
||||||
@@ -203,22 +237,34 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
tr.Load( this );
|
tr.Load( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this.isFeatureEnabled( AEFeature.SpatialIO ) )
|
if( this.isFeatureEnabled( AEFeature.SPATIAL_IO ) )
|
||||||
{
|
{
|
||||||
this.storageBiomeID = this.get( "spatialio", "storageBiomeID", this.storageBiomeID ).getInt( this.storageBiomeID );
|
this.storageBiomeID = this.get( "spatialio", "storageBiomeID", this.storageBiomeID ).getInt( this.storageBiomeID );
|
||||||
this.storageProviderID = this.get( "spatialio", "storageProviderID", this.storageProviderID ).getInt( this.storageProviderID );
|
this.storageProviderID = this.get( "spatialio", "storageProviderID", this.storageProviderID ).getInt( this.storageProviderID );
|
||||||
this.spatialPowerMultiplier = this.get( "spatialio", "spatialPowerMultiplier", this.spatialPowerMultiplier ).getDouble( this.spatialPowerMultiplier );
|
this.spatialPowerMultiplier = this.get( "spatialio", "spatialPowerMultiplier", this.spatialPowerMultiplier ).getDouble(
|
||||||
|
this.spatialPowerMultiplier );
|
||||||
this.spatialPowerExponent = this.get( "spatialio", "spatialPowerExponent", this.spatialPowerExponent ).getDouble( this.spatialPowerExponent );
|
this.spatialPowerExponent = this.get( "spatialio", "spatialPowerExponent", this.spatialPowerExponent ).getDouble( this.spatialPowerExponent );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( this.isFeatureEnabled( AEFeature.CraftingCPU ) )
|
if( this.isFeatureEnabled( AEFeature.CRAFTING_CPU ) )
|
||||||
{
|
{
|
||||||
this.craftingCalculationTimePerTick = this.get( "craftingCPU", "craftingCalculationTimePerTick", this.craftingCalculationTimePerTick ).getInt( this.craftingCalculationTimePerTick );
|
this.craftingCalculationTimePerTick = this.get( "craftingCPU", "craftingCalculationTimePerTick", this.craftingCalculationTimePerTick ).getInt(
|
||||||
|
this.craftingCalculationTimePerTick );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.updatable = true;
|
this.updatable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void init( final File configFile )
|
||||||
|
{
|
||||||
|
instance = new AEConfig( configFile );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AEConfig instance()
|
||||||
|
{
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
private void clientSync()
|
private void clientSync()
|
||||||
{
|
{
|
||||||
this.disableColoredCableRecipesInJEI = this.get( "Client", "disableColoredCableRecipesInJEI", true ).getBoolean( true );
|
this.disableColoredCableRecipesInJEI = this.get( "Client", "disableColoredCableRecipesInJEI", true ).getBoolean( true );
|
||||||
@@ -305,17 +351,17 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
|
|
||||||
public double wireless_getDrainRate( final double range )
|
public double wireless_getDrainRate( final double range )
|
||||||
{
|
{
|
||||||
return this.WirelessTerminalDrainMultiplier * range;
|
return this.wirelessTerminalDrainMultiplier * range;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double wireless_getMaxRange( final int boosters )
|
public double wireless_getMaxRange( final int boosters )
|
||||||
{
|
{
|
||||||
return this.WirelessBaseRange + this.WirelessBoosterRangeMultiplier * Math.pow( boosters, this.WirelessBoosterExp );
|
return this.wirelessBaseRange + this.wirelessBoosterRangeMultiplier * Math.pow( boosters, this.wirelessBoosterExp );
|
||||||
}
|
}
|
||||||
|
|
||||||
public double wireless_getPowerDrain( final int boosters )
|
public double wireless_getPowerDrain( final int boosters )
|
||||||
{
|
{
|
||||||
return this.WirelessBaseCost + this.WirelessCostMultiplier * Math.pow( boosters, 1 + boosters / this.WirelessHighWirelessCount );
|
return this.wirelessBaseCost + this.wirelessCostMultiplier * Math.pow( boosters, 1 + boosters / this.wirelessHighWirelessCount );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -337,7 +383,7 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
@Override
|
@Override
|
||||||
public void save()
|
public void save()
|
||||||
{
|
{
|
||||||
if( this.isFeatureEnabled( AEFeature.SpatialIO ) )
|
if( this.isFeatureEnabled( AEFeature.SPATIAL_IO ) )
|
||||||
{
|
{
|
||||||
this.get( "spatialio", "storageBiomeID", this.storageBiomeID ).set( this.storageBiomeID );
|
this.get( "spatialio", "storageBiomeID", this.storageBiomeID ).set( this.storageBiomeID );
|
||||||
this.get( "spatialio", "storageProviderID", this.storageProviderID ).set( this.storageProviderID );
|
this.get( "spatialio", "storageProviderID", this.storageProviderID ).set( this.storageProviderID );
|
||||||
@@ -372,12 +418,13 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
|
|
||||||
public boolean useAEVersion( final MaterialType mt )
|
public boolean useAEVersion( final MaterialType mt )
|
||||||
{
|
{
|
||||||
if( this.isFeatureEnabled( AEFeature.WebsiteRecipes ) )
|
if( this.isFeatureEnabled( AEFeature.WEBSITE_RECIPES ) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setCategoryComment( "OreCamouflage", "AE2 Automatically uses alternative ores present in your instance of MC to blend better with its surroundings, if you prefer you can disable this selectively using these flags; Its important to note, that some if these items even if enabled may not be craftable in game because other items are overriding their recipes." );
|
this.setCategoryComment( "OreCamouflage",
|
||||||
|
"AE2 Automatically uses alternative ores present in your instance of MC to blend better with its surroundings, if you prefer you can disable this selectively using these flags; Its important to note, that some if these items even if enabled may not be craftable in game because other items are overriding their recipes." );
|
||||||
final Property p = this.get( "OreCamouflage", mt.name(), true );
|
final Property p = this.get( "OreCamouflage", mt.name(), true );
|
||||||
p.setComment( "OreDictionary Names: " + mt.getOreName() );
|
p.setComment( "OreDictionary Names: " + mt.getOreName() );
|
||||||
|
|
||||||
@@ -503,4 +550,212 @@ public final class AEConfig extends Configuration implements IConfigurableObject
|
|||||||
this.selectedPowerUnit = Platform.rotateEnum( this.selectedPowerUnit, backwards, Settings.POWER_UNITS.getPossibleValues() );
|
this.selectedPowerUnit = Platform.rotateEnum( this.selectedPowerUnit, backwards, Settings.POWER_UNITS.getPossibleValues() );
|
||||||
this.save();
|
this.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Getters
|
||||||
|
public boolean isRemoveCrashingItemsOnLoad()
|
||||||
|
{
|
||||||
|
return removeCrashingItemsOnLoad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFormationPlaneEntityLimit()
|
||||||
|
{
|
||||||
|
return formationPlaneEntityLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnableEffects()
|
||||||
|
{
|
||||||
|
return enableEffects;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUseLargeFonts()
|
||||||
|
{
|
||||||
|
return useLargeFonts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUseColoredCraftingStatus()
|
||||||
|
{
|
||||||
|
return useColoredCraftingStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDisableColoredCableRecipesInJEI()
|
||||||
|
{
|
||||||
|
return disableColoredCableRecipesInJEI;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCraftingCalculationTimePerTick()
|
||||||
|
{
|
||||||
|
return craftingCalculationTimePerTick;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PowerUnits getSelectedPowerUnit()
|
||||||
|
{
|
||||||
|
return selectedPowerUnit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getCraftByStacks()
|
||||||
|
{
|
||||||
|
return craftByStacks;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getPriorityByStacks()
|
||||||
|
{
|
||||||
|
return priorityByStacks;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getLevelByStacks()
|
||||||
|
{
|
||||||
|
return levelByStacks;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStorageBiomeID()
|
||||||
|
{
|
||||||
|
return storageBiomeID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStorageProviderID()
|
||||||
|
{
|
||||||
|
return storageProviderID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getSpatialPowerExponent()
|
||||||
|
{
|
||||||
|
return spatialPowerExponent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getSpatialPowerMultiplier()
|
||||||
|
{
|
||||||
|
return spatialPowerMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getGrinderOres()
|
||||||
|
{
|
||||||
|
return grinderOres;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getOreDoublePercentage()
|
||||||
|
{
|
||||||
|
return oreDoublePercentage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWirelessTerminalBattery()
|
||||||
|
{
|
||||||
|
return wirelessTerminalBattery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getEntropyManipulatorBattery()
|
||||||
|
{
|
||||||
|
return entropyManipulatorBattery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMatterCannonBattery()
|
||||||
|
{
|
||||||
|
return matterCannonBattery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPortableCellBattery()
|
||||||
|
{
|
||||||
|
return portableCellBattery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getColorApplicatorBattery()
|
||||||
|
{
|
||||||
|
return colorApplicatorBattery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChargedStaffBattery()
|
||||||
|
{
|
||||||
|
return chargedStaffBattery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getSpawnChargedChance()
|
||||||
|
{
|
||||||
|
return spawnChargedChance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getQuartzOresPerCluster()
|
||||||
|
{
|
||||||
|
return quartzOresPerCluster;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getQuartzOresClusterAmount()
|
||||||
|
{
|
||||||
|
return quartzOresClusterAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getChargedChange()
|
||||||
|
{
|
||||||
|
return chargedChange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinMeteoriteDistance()
|
||||||
|
{
|
||||||
|
return minMeteoriteDistance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinMeteoriteDistanceSq()
|
||||||
|
{
|
||||||
|
return minMeteoriteDistanceSq;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getMeteoriteClusterChance()
|
||||||
|
{
|
||||||
|
return meteoriteClusterChance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMeteoriteMaximumSpawnHeight()
|
||||||
|
{
|
||||||
|
return meteoriteMaximumSpawnHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getMeteoriteDimensionWhitelist()
|
||||||
|
{
|
||||||
|
return meteoriteDimensionWhitelist;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessBaseCost()
|
||||||
|
{
|
||||||
|
return wirelessBaseCost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessCostMultiplier()
|
||||||
|
{
|
||||||
|
return wirelessCostMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessTerminalDrainMultiplier()
|
||||||
|
{
|
||||||
|
return wirelessTerminalDrainMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessBaseRange()
|
||||||
|
{
|
||||||
|
return wirelessBaseRange;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessBoosterRangeMultiplier()
|
||||||
|
{
|
||||||
|
return wirelessBoosterRangeMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessBoosterExp()
|
||||||
|
{
|
||||||
|
return wirelessBoosterExp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getWirelessHighWirelessCount()
|
||||||
|
{
|
||||||
|
return wirelessHighWirelessCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setters keep visibility as low as possible.
|
||||||
|
|
||||||
|
void setStorageBiomeID( int id )
|
||||||
|
{
|
||||||
|
this.storageBiomeID = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setStorageProviderID( int id )
|
||||||
|
{
|
||||||
|
this.storageProviderID = id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static boolean isLogEnabled()
|
public static boolean isLogEnabled()
|
||||||
{
|
{
|
||||||
return AEConfig.instance == null || AEConfig.instance.isFeatureEnabled( AEFeature.Logging );
|
return AEConfig.instance() == null || AEConfig.instance().isFeatureEnabled( AEFeature.LOGGING );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -278,7 +278,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static boolean isDebugLogEnabled()
|
public static boolean isDebugLogEnabled()
|
||||||
{
|
{
|
||||||
return AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging );
|
return AEConfig.instance().isFeatureEnabled( AEFeature.DEBUG_LOGGING );
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -292,7 +292,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static void grinder( @Nonnull final String message )
|
public static void grinder( @Nonnull final String message )
|
||||||
{
|
{
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.GrinderLogging ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.GRINDER_LOGGING ) )
|
||||||
{
|
{
|
||||||
log( Level.DEBUG, "grinder: " + message );
|
log( Level.DEBUG, "grinder: " + message );
|
||||||
}
|
}
|
||||||
@@ -305,7 +305,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static void integration( @Nonnull final Throwable exception )
|
public static void integration( @Nonnull final Throwable exception )
|
||||||
{
|
{
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.IntegrationLogging ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.INTEGRATION_LOGGING ) )
|
||||||
{
|
{
|
||||||
debug( exception );
|
debug( exception );
|
||||||
}
|
}
|
||||||
@@ -322,7 +322,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static void blockUpdate( @Nonnull final BlockPos pos, @Nonnull final AEBaseTile aeBaseTile )
|
public static void blockUpdate( @Nonnull final BlockPos pos, @Nonnull final AEBaseTile aeBaseTile )
|
||||||
{
|
{
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.UpdateLogging ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.UPDATE_LOGGING ) )
|
||||||
{
|
{
|
||||||
info( BLOCK_UPDATE, aeBaseTile.getClass().getName(), pos );
|
info( BLOCK_UPDATE, aeBaseTile.getClass().getName(), pos );
|
||||||
}
|
}
|
||||||
@@ -337,7 +337,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static boolean isCraftingLogEnabled()
|
public static boolean isCraftingLogEnabled()
|
||||||
{
|
{
|
||||||
return AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog );
|
return AEConfig.instance().isFeatureEnabled( AEFeature.CRAFTING_LOG );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -366,7 +366,7 @@ public final class AELog
|
|||||||
*/
|
*/
|
||||||
public static boolean isCraftingDebugLogEnabled()
|
public static boolean isCraftingDebugLogEnabled()
|
||||||
{
|
{
|
||||||
return AEConfig.instance.isFeatureEnabled( AEFeature.CraftingLog ) && AEConfig.instance.isFeatureEnabled( AEFeature.DebugLogging );
|
return AEConfig.instance().isFeatureEnabled( AEFeature.CRAFTING_LOG ) && AEConfig.instance().isFeatureEnabled( AEFeature.DEBUG_LOGGING );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -78,10 +78,10 @@ public final class AppEng
|
|||||||
|
|
||||||
// depend on version of forge used for build.
|
// depend on version of forge used for build.
|
||||||
"after:appliedenergistics2-core;" + "required-after:Forge@[" // require forge.
|
"after:appliedenergistics2-core;" + "required-after:Forge@[" // require forge.
|
||||||
+ net.minecraftforge.common.ForgeVersion.majorVersion + '.' // majorVersion
|
+ net.minecraftforge.common.ForgeVersion.majorVersion + '.' // majorVersion
|
||||||
+ net.minecraftforge.common.ForgeVersion.minorVersion + '.' // minorVersion
|
+ net.minecraftforge.common.ForgeVersion.minorVersion + '.' // minorVersion
|
||||||
+ net.minecraftforge.common.ForgeVersion.revisionVersion + '.' // revisionVersion
|
+ net.minecraftforge.common.ForgeVersion.revisionVersion + '.' // revisionVersion
|
||||||
+ net.minecraftforge.common.ForgeVersion.buildVersion + ",)"; // buildVersion
|
+ net.minecraftforge.common.ForgeVersion.buildVersion + ",)"; // buildVersion
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
private static final AppEng INSTANCE = new AppEng();
|
private static final AppEng INSTANCE = new AppEng();
|
||||||
@@ -141,8 +141,9 @@ public final class AppEng
|
|||||||
final File recipeFile = new File( this.configDirectory, "CustomRecipes.cfg" );
|
final File recipeFile = new File( this.configDirectory, "CustomRecipes.cfg" );
|
||||||
final Configuration recipeConfiguration = new Configuration( recipeFile );
|
final Configuration recipeConfiguration = new Configuration( recipeFile );
|
||||||
|
|
||||||
AEConfig.instance = new AEConfig( configFile );
|
AEConfig.init( configFile );
|
||||||
FacadeConfig.instance = new FacadeConfig( facadeFile );
|
FacadeConfig.init( facadeFile );
|
||||||
|
|
||||||
final VersionCheckerConfig versionCheckerConfig = new VersionCheckerConfig( versionFile );
|
final VersionCheckerConfig versionCheckerConfig = new VersionCheckerConfig( versionFile );
|
||||||
this.customRecipeConfig = new CustomRecipeForgeConfiguration( recipeConfiguration );
|
this.customRecipeConfig = new CustomRecipeForgeConfiguration( recipeConfiguration );
|
||||||
this.exportConfig = new ForgeExportConfig( recipeConfiguration );
|
this.exportConfig = new ForgeExportConfig( recipeConfiguration );
|
||||||
@@ -150,7 +151,7 @@ public final class AppEng
|
|||||||
AELog.info( "Pre Initialization ( started )" );
|
AELog.info( "Pre Initialization ( started )" );
|
||||||
|
|
||||||
CreativeTab.init();
|
CreativeTab.init();
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.Facades ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.FACADES ) )
|
||||||
{
|
{
|
||||||
CreativeTabFacade.init();
|
CreativeTabFacade.init();
|
||||||
}
|
}
|
||||||
@@ -174,8 +175,7 @@ public final class AppEng
|
|||||||
|
|
||||||
// Instantiate all Plugins
|
// Instantiate all Plugins
|
||||||
List<Object> injectables = Lists.newArrayList(
|
List<Object> injectables = Lists.newArrayList(
|
||||||
AEApi.instance()
|
AEApi.instance() );
|
||||||
);
|
|
||||||
new PluginLoader().loadPlugins( injectables, event.getAsmData() );
|
new PluginLoader().loadPlugins( injectables, event.getAsmData() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,10 +226,10 @@ public final class AppEng
|
|||||||
FMLCommonHandler.instance().registerCrashCallable( new IntegrationCrashEnhancement() );
|
FMLCommonHandler.instance().registerCrashCallable( new IntegrationCrashEnhancement() );
|
||||||
|
|
||||||
CommonHelper.proxy.postInit();
|
CommonHelper.proxy.postInit();
|
||||||
AEConfig.instance.save();
|
AEConfig.instance().save();
|
||||||
|
|
||||||
NetworkRegistry.INSTANCE.registerGuiHandler( this, GuiBridge.GUI_Handler );
|
NetworkRegistry.INSTANCE.registerGuiHandler( this, GuiBridge.GUI_Handler );
|
||||||
NetworkHandler.instance = new NetworkHandler( "AE2" );
|
NetworkHandler.init( "AE2" );
|
||||||
|
|
||||||
AELog.info( "Post Initialization ( ended after " + start.elapsed( TimeUnit.MILLISECONDS ) + "ms )" );
|
AELog.info( "Post Initialization ( ended after " + start.elapsed( TimeUnit.MILLISECONDS ) + "ms )" );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public final class CreativeTab extends CreativeTabs
|
|||||||
final IItems items = definitions.items();
|
final IItems items = definitions.items();
|
||||||
final IMaterials materials = definitions.materials();
|
final IMaterials materials = definitions.materials();
|
||||||
|
|
||||||
return this.findFirst( blocks.controller(), blocks.chest(), blocks.cellWorkbench(), blocks.fluixBlock(), items.cell1k(), items.networkTool(), materials.fluixCrystal(), materials.certusQuartzCrystal() );
|
return this.findFirst( blocks.controller(), blocks.chest(), blocks.cellWorkbench(), blocks.fluixBlock(), items.cell1k(), items.networkTool(), materials.fluixCrystal(), materials.certusQuartzCrystal(), materials.skyDust() );
|
||||||
}
|
}
|
||||||
|
|
||||||
private ItemStack findFirst( final IItemDefinition... choices )
|
private ItemStack findFirst( final IItemDefinition... choices )
|
||||||
|
|||||||
@@ -33,7 +33,8 @@ import net.minecraftforge.common.config.Configuration;
|
|||||||
public class FacadeConfig extends Configuration
|
public class FacadeConfig extends Configuration
|
||||||
{
|
{
|
||||||
|
|
||||||
public static FacadeConfig instance;
|
private static FacadeConfig instance;
|
||||||
|
|
||||||
private final Pattern replacementPattern;
|
private final Pattern replacementPattern;
|
||||||
|
|
||||||
public FacadeConfig( final File facadeFile )
|
public FacadeConfig( final File facadeFile )
|
||||||
@@ -42,6 +43,16 @@ public class FacadeConfig extends Configuration
|
|||||||
this.replacementPattern = Pattern.compile( "[^a-zA-Z0-9]" );
|
this.replacementPattern = Pattern.compile( "[^a-zA-Z0-9]" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void init( final File configFile )
|
||||||
|
{
|
||||||
|
instance = new FacadeConfig( configFile );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FacadeConfig instance()
|
||||||
|
{
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean checkEnabled( final Block id, final int metadata, final boolean automatic )
|
public boolean checkEnabled( final Block id, final int metadata, final boolean automatic )
|
||||||
{
|
{
|
||||||
if( id == null )
|
if( id == null )
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ package appeng.core;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
@@ -30,7 +29,6 @@ import com.google.common.base.Preconditions;
|
|||||||
import net.minecraft.world.DimensionType;
|
import net.minecraft.world.DimensionType;
|
||||||
import net.minecraft.world.biome.Biome;
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
|
||||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
@@ -65,6 +63,7 @@ import appeng.core.localization.GuiText;
|
|||||||
import appeng.core.localization.PlayerMessages;
|
import appeng.core.localization.PlayerMessages;
|
||||||
import appeng.core.stats.PlayerStatsRegistration;
|
import appeng.core.stats.PlayerStatsRegistration;
|
||||||
import appeng.hooks.TickHandler;
|
import appeng.hooks.TickHandler;
|
||||||
|
import appeng.integration.Integrations;
|
||||||
import appeng.items.materials.ItemMaterial;
|
import appeng.items.materials.ItemMaterial;
|
||||||
import appeng.items.parts.ItemFacade;
|
import appeng.items.parts.ItemFacade;
|
||||||
import appeng.loot.ChestLoot;
|
import appeng.loot.ChestLoot;
|
||||||
@@ -86,7 +85,6 @@ import appeng.recipes.game.ShapedRecipe;
|
|||||||
import appeng.recipes.game.ShapelessRecipe;
|
import appeng.recipes.game.ShapelessRecipe;
|
||||||
import appeng.recipes.handlers.Crusher;
|
import appeng.recipes.handlers.Crusher;
|
||||||
import appeng.recipes.handlers.Grind;
|
import appeng.recipes.handlers.Grind;
|
||||||
import appeng.recipes.handlers.GrindFZ;
|
|
||||||
import appeng.recipes.handlers.HCCrusher;
|
import appeng.recipes.handlers.HCCrusher;
|
||||||
import appeng.recipes.handlers.Inscribe;
|
import appeng.recipes.handlers.Inscribe;
|
||||||
import appeng.recipes.handlers.Macerator;
|
import appeng.recipes.handlers.Macerator;
|
||||||
@@ -151,42 +149,42 @@ public final class Registration
|
|||||||
|
|
||||||
private void registerSpatial( final boolean force )
|
private void registerSpatial( final boolean force )
|
||||||
{
|
{
|
||||||
if( !AEConfig.instance.isFeatureEnabled( AEFeature.SpatialIO ) )
|
if( !AEConfig.instance().isFeatureEnabled( AEFeature.SPATIAL_IO ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final AEConfig config = AEConfig.instance;
|
final AEConfig config = AEConfig.instance();
|
||||||
|
|
||||||
if( this.storageBiome == null )
|
if( this.storageBiome == null )
|
||||||
{
|
{
|
||||||
if( force && config.storageBiomeID == -1 )
|
if( force && config.getStorageBiomeID() == -1 )
|
||||||
{
|
{
|
||||||
config.storageBiomeID = Platform.findEmpty( Biome.REGISTRY, 0, 256 );
|
config.setStorageBiomeID( Platform.findEmpty( Biome.REGISTRY, 0, 256 ) );
|
||||||
if( config.storageBiomeID == -1 )
|
if( config.getStorageBiomeID() == -1 )
|
||||||
{
|
{
|
||||||
throw new IllegalStateException( "Biome Array is full, please free up some Biome ID's or disable spatial." );
|
throw new IllegalStateException( "Biome Array is full, please free up some Biome ID's or disable spatial." );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.storageBiome = new BiomeGenStorage();
|
this.storageBiome = new BiomeGenStorage();
|
||||||
Biome.registerBiome( config.storageBiomeID, "appliedenergistics2:storage_biome", this.storageBiome );
|
Biome.registerBiome( config.getStorageBiomeID(), "appliedenergistics2:storage_biome", this.storageBiome );
|
||||||
config.save();
|
config.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !force && config.storageBiomeID != -1 )
|
if( !force && config.getStorageBiomeID() != -1 )
|
||||||
{
|
{
|
||||||
this.storageBiome = new BiomeGenStorage();
|
this.storageBiome = new BiomeGenStorage();
|
||||||
Biome.registerBiome( config.storageBiomeID, "appliedenergistics2:storage_biome", this.storageBiome );
|
Biome.registerBiome( config.getStorageBiomeID(), "appliedenergistics2:storage_biome", this.storageBiome );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( config.storageProviderID != -1 )
|
if( config.getStorageProviderID() != -1 )
|
||||||
{
|
{
|
||||||
storageDimensionType = DimensionType.register( "Storage Cell", "_cell", config.storageProviderID, StorageWorldProvider.class, false );
|
storageDimensionType = DimensionType.register( "Storage Cell", "_cell", config.getStorageProviderID(), StorageWorldProvider.class, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( config.storageProviderID == -1 && force )
|
if( config.getStorageProviderID() == -1 && force )
|
||||||
{
|
{
|
||||||
final Set<Integer> ids = new HashSet<>();
|
final Set<Integer> ids = new HashSet<>();
|
||||||
for( DimensionType type : DimensionType.values() )
|
for( DimensionType type : DimensionType.values() )
|
||||||
@@ -194,14 +192,14 @@ public final class Registration
|
|||||||
ids.add( type.getId() );
|
ids.add( type.getId() );
|
||||||
}
|
}
|
||||||
|
|
||||||
config.storageProviderID = -11;
|
config.setStorageProviderID( -11 );
|
||||||
|
|
||||||
while( ids.contains( config.storageProviderID ) )
|
while( ids.contains( config.getStorageProviderID() ) )
|
||||||
{
|
{
|
||||||
config.storageProviderID--;
|
config.setStorageProviderID( config.getStorageProviderID() - 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
storageDimensionType = DimensionType.register( "Storage Cell", "_cell", config.storageProviderID, StorageWorldProvider.class, false );
|
storageDimensionType = DimensionType.register( "Storage Cell", "_cell", config.getStorageProviderID(), StorageWorldProvider.class, false );
|
||||||
|
|
||||||
config.save();
|
config.save();
|
||||||
}
|
}
|
||||||
@@ -216,7 +214,6 @@ public final class Registration
|
|||||||
registry.addNewCraftHandler( "mekechamber", MekEnrichment.class );
|
registry.addNewCraftHandler( "mekechamber", MekEnrichment.class );
|
||||||
registry.addNewCraftHandler( "grind", Grind.class );
|
registry.addNewCraftHandler( "grind", Grind.class );
|
||||||
registry.addNewCraftHandler( "crusher", Crusher.class );
|
registry.addNewCraftHandler( "crusher", Crusher.class );
|
||||||
registry.addNewCraftHandler( "grindfz", GrindFZ.class );
|
|
||||||
registry.addNewCraftHandler( "pulverizer", Pulverizer.class );
|
registry.addNewCraftHandler( "pulverizer", Pulverizer.class );
|
||||||
registry.addNewCraftHandler( "macerator", Macerator.class );
|
registry.addNewCraftHandler( "macerator", Macerator.class );
|
||||||
|
|
||||||
@@ -248,13 +245,11 @@ public final class Registration
|
|||||||
final Runnable recipeLoader = new RecipeLoader( recipeDirectory, customRecipeConfig, this.recipeHandler );
|
final Runnable recipeLoader = new RecipeLoader( recipeDirectory, customRecipeConfig, this.recipeHandler );
|
||||||
recipeLoader.run();
|
recipeLoader.run();
|
||||||
|
|
||||||
// TODO readd layers
|
if( Integrations.ic2().isEnabled() )
|
||||||
|
{
|
||||||
// if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.IC2 ) )
|
partHelper.registerNewLayer( "appeng.parts.layers.LayerIEnergySink", "ic2.api.energy.tile.IEnergySink" );
|
||||||
// {
|
partHelper.registerNewLayer( "appeng.parts.layers.LayerIEnergySource", "ic2.api.energy.tile.IEnergySource" );
|
||||||
// partHelper.registerNewLayer( "appeng.parts.layers.LayerIEnergySink", "ic2.api.energy.tile.IEnergySink" );
|
}
|
||||||
// partHelper.registerNewLayer( "appeng.parts.layers.LayerIEnergySource", "ic2.api.energy.tile.IEnergySource" );
|
|
||||||
// }
|
|
||||||
//
|
//
|
||||||
// if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.RF ) )
|
// if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.RF ) )
|
||||||
// {
|
// {
|
||||||
@@ -267,13 +262,11 @@ public final class Registration
|
|||||||
// "li.cil.oc.api.network.SidedEnvironment" );
|
// "li.cil.oc.api.network.SidedEnvironment" );
|
||||||
// }
|
// }
|
||||||
|
|
||||||
FMLCommonHandler.instance().bus().register( TickHandler.INSTANCE );
|
|
||||||
MinecraftForge.EVENT_BUS.register( TickHandler.INSTANCE );
|
MinecraftForge.EVENT_BUS.register( TickHandler.INSTANCE );
|
||||||
|
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register( new PartPlacement() );
|
MinecraftForge.EVENT_BUS.register( new PartPlacement() );
|
||||||
|
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.ChestLoot ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.CHEST_LOOT ) )
|
||||||
{
|
{
|
||||||
MinecraftForge.EVENT_BUS.register( new ChestLoot() );
|
MinecraftForge.EVENT_BUS.register( new ChestLoot() );
|
||||||
}
|
}
|
||||||
@@ -291,8 +284,7 @@ public final class Registration
|
|||||||
registries.cell().addCellHandler( new BasicCellHandler() );
|
registries.cell().addCellHandler( new BasicCellHandler() );
|
||||||
registries.cell().addCellHandler( new CreativeCellHandler() );
|
registries.cell().addCellHandler( new CreativeCellHandler() );
|
||||||
|
|
||||||
api.definitions().materials().matterBall().maybeStack( 1 ).ifPresent( ammoStack ->
|
api.definitions().materials().matterBall().maybeStack( 1 ).ifPresent( ammoStack -> {
|
||||||
{
|
|
||||||
final double weight = 32;
|
final double weight = 32;
|
||||||
|
|
||||||
registries.matterCannon().registerAmmo( ammoStack, weight );
|
registries.matterCannon().registerAmmo( ammoStack, weight );
|
||||||
@@ -300,17 +292,17 @@ public final class Registration
|
|||||||
|
|
||||||
this.recipeHandler.injectRecipes();
|
this.recipeHandler.injectRecipes();
|
||||||
|
|
||||||
final PlayerStatsRegistration registration = new PlayerStatsRegistration( FMLCommonHandler.instance().bus(), AEConfig.instance );
|
final PlayerStatsRegistration registration = new PlayerStatsRegistration( MinecraftForge.EVENT_BUS, AEConfig.instance() );
|
||||||
registration.registerAchievementHandlers();
|
registration.registerAchievementHandlers();
|
||||||
registration.registerAchievements();
|
registration.registerAchievements();
|
||||||
|
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.EnableDisassemblyCrafting ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_DISASSEMBLY_CRAFTING ) )
|
||||||
{
|
{
|
||||||
GameRegistry.addRecipe( new DisassembleRecipe() );
|
GameRegistry.addRecipe( new DisassembleRecipe() );
|
||||||
RecipeSorter.register( "appliedenergistics2:disassemble", DisassembleRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless" );
|
RecipeSorter.register( "appliedenergistics2:disassemble", DisassembleRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless" );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.EnableFacadeCrafting ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_FACADE_CRAFTING ) )
|
||||||
{
|
{
|
||||||
definitions.items().facade().maybeItem().ifPresent( facadeItem -> {
|
definitions.items().facade().maybeItem().ifPresent( facadeItem -> {
|
||||||
GameRegistry.addRecipe( new FacadeRecipe( (ItemFacade) facadeItem ) );
|
GameRegistry.addRecipe( new FacadeRecipe( (ItemFacade) facadeItem ) );
|
||||||
@@ -337,8 +329,6 @@ public final class Registration
|
|||||||
PlayerMessages.values();
|
PlayerMessages.values();
|
||||||
GuiText.values();
|
GuiText.values();
|
||||||
|
|
||||||
Api.INSTANCE.partHelper().initFMPSupport();
|
|
||||||
|
|
||||||
definitions.getRegistry().getBootstrapComponents().forEach( b -> b.postInitialize( event.getSide() ) );
|
definitions.getRegistry().getBootstrapComponents().forEach( b -> b.postInitialize( event.getSide() ) );
|
||||||
|
|
||||||
// Interface
|
// Interface
|
||||||
@@ -406,24 +396,23 @@ public final class Registration
|
|||||||
// Inscriber
|
// Inscriber
|
||||||
Upgrades.SPEED.registerItem( blocks.inscriber(), 3 );
|
Upgrades.SPEED.registerItem( blocks.inscriber(), 3 );
|
||||||
|
|
||||||
items.wirelessTerminal().maybeItem().ifPresent( terminal ->
|
items.wirelessTerminal().maybeItem().ifPresent( terminal -> {
|
||||||
{
|
|
||||||
registries.wireless().registerWirelessHandler( (IWirelessTermHandler) terminal );
|
registries.wireless().registerWirelessHandler( (IWirelessTermHandler) terminal );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
// add villager trading to black smiths for a few basic materials
|
// add villager trading to black smiths for a few basic materials
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.VillagerTrading ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.VILLAGER_TRADING ) )
|
||||||
{
|
{
|
||||||
// TODO: VILLAGER TRADING
|
// TODO: VILLAGER TRADING
|
||||||
// VillagerRegistry.instance().getRegisteredVillagers()..registerVillageTradeHandler( 3, new AETrading() );
|
// VillagerRegistry.instance().getRegisteredVillagers()..registerVillageTradeHandler( 3, new AETrading() );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.CertusQuartzWorldGen ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.CERTUS_QUARTZ_WORLD_GEN ) )
|
||||||
{
|
{
|
||||||
GameRegistry.registerWorldGenerator( new QuartzWorldGen(), 0 );
|
GameRegistry.registerWorldGenerator( new QuartzWorldGen(), 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.MeteoriteWorldGen ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.METEORITE_WORLD_GEN ) )
|
||||||
{
|
{
|
||||||
GameRegistry.registerWorldGenerator( new MeteoriteWorldGen(), 0 );
|
GameRegistry.registerWorldGenerator( new MeteoriteWorldGen(), 0 );
|
||||||
}
|
}
|
||||||
@@ -478,7 +467,7 @@ public final class Registration
|
|||||||
}
|
}
|
||||||
|
|
||||||
// whitelist from config
|
// whitelist from config
|
||||||
for( final int dimension : AEConfig.instance.meteoriteDimensionWhitelist )
|
for( final int dimension : AEConfig.instance().getMeteoriteDimensionWhitelist() )
|
||||||
{
|
{
|
||||||
registries.worldgen().enableWorldGenForDimension( WorldGenType.METEORITES, dimension );
|
registries.worldgen().enableWorldGenForDimension( WorldGenType.METEORITES, dimension );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,10 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.cache.CacheBuilder;
|
||||||
|
import com.google.common.cache.CacheLoader;
|
||||||
|
import com.google.common.cache.LoadingCache;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
|
||||||
import org.objectweb.asm.ClassReader;
|
import org.objectweb.asm.ClassReader;
|
||||||
import org.objectweb.asm.ClassWriter;
|
import org.objectweb.asm.ClassWriter;
|
||||||
@@ -53,9 +56,6 @@ import appeng.api.parts.IPartHelper;
|
|||||||
import appeng.api.parts.LayerBase;
|
import appeng.api.parts.LayerBase;
|
||||||
import appeng.core.AELog;
|
import appeng.core.AELog;
|
||||||
import appeng.core.CommonHelper;
|
import appeng.core.CommonHelper;
|
||||||
import appeng.integration.IntegrationRegistry;
|
|
||||||
import appeng.integration.IntegrationType;
|
|
||||||
import appeng.integration.abstraction.IFMP;
|
|
||||||
import appeng.parts.PartPlacement;
|
import appeng.parts.PartPlacement;
|
||||||
import appeng.tile.AEBaseTile;
|
import appeng.tile.AEBaseTile;
|
||||||
import appeng.tile.networking.TileCableBus;
|
import appeng.tile.networking.TileCableBus;
|
||||||
@@ -64,80 +64,91 @@ import appeng.tile.networking.TileCableBus;
|
|||||||
public class ApiPart implements IPartHelper
|
public class ApiPart implements IPartHelper
|
||||||
{
|
{
|
||||||
|
|
||||||
private final Map<String, Class<? extends AEBaseTile>> tileImplementations = new HashMap<>();
|
private final LoadingCache<CacheKey, Class<? extends AEBaseTile>> cache = CacheBuilder.newBuilder().build( new CacheLoader<CacheKey, Class<? extends AEBaseTile>>()
|
||||||
private final Map<Class<?>, String> interfaces2Layer = new HashMap<Class<?>, String>();
|
{
|
||||||
private final Map<String, Class> roots = new HashMap<String, Class>();
|
@Override
|
||||||
|
public Class<? extends AEBaseTile> load( CacheKey key ) throws Exception
|
||||||
|
{
|
||||||
|
return generateCombinedClass( key );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
private final Map<Class<?>, String> interfaces2Layer = new HashMap<>();
|
||||||
private final List<String> desc = new LinkedList<String>();
|
private final List<String> desc = new LinkedList<String>();
|
||||||
|
|
||||||
public void initFMPSupport()
|
/**
|
||||||
{
|
* Conceptually this method will build a new class hierarchy that is rooted at the given base class, and includes a chain of all registered layers.
|
||||||
for( final Class layerInterface : this.interfaces2Layer.keySet() )
|
* <p/>
|
||||||
{
|
* To accomplish this, it takes the first registered layer, replaces it's inheritance from LayerBase with an inheritance from the given baseClass,
|
||||||
if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.FMP ) )
|
* and uses the resulting class as the parent class for the next registered layer, for which it repeats this process. This process is then repeated
|
||||||
{
|
* until a class hierarchy of all layers is formed. While janking out the inheritance from LayerBase, it'll make also sure that calls to that
|
||||||
( (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP ) ).registerPassThrough( layerInterface );
|
* classes method will instead be forwarded to the superclass that was inserted as part of the described process.
|
||||||
}
|
* <p/>
|
||||||
}
|
* Example: If layers A and B are registered, and TileCableBus is passed in as the baseClass, a synthetic class A_B_TileCableBus should be returned,
|
||||||
}
|
* which has A_B_TileCableBus -extends-> B_TileCableBus -extends-> TileCableBus as it's class hierarchy, where A_B_TileCableBus has been generated
|
||||||
|
* from A, and B_TileCableBus has been generated from B.
|
||||||
|
*/
|
||||||
public Class<? extends AEBaseTile> getCombinedInstance( final Class<? extends AEBaseTile> baseClass )
|
public Class<? extends AEBaseTile> getCombinedInstance( final Class<? extends AEBaseTile> baseClass )
|
||||||
{
|
{
|
||||||
String base = baseClass.getName();
|
|
||||||
|
|
||||||
if( this.desc.isEmpty() )
|
if( this.desc.isEmpty() )
|
||||||
{
|
{
|
||||||
|
// No layers registered...
|
||||||
return baseClass;
|
return baseClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String description = base + ':' + Joiner.on( ";" ).skipNulls().join( this.desc.iterator() );
|
return cache.getUnchecked( new CacheKey( baseClass, this.desc ) );
|
||||||
|
|
||||||
if( this.tileImplementations.get( description ) != null )
|
|
||||||
{
|
|
||||||
return this.tileImplementations.get( description );
|
|
||||||
}
|
|
||||||
|
|
||||||
String f = base;// TileCableBus.class.getName();
|
|
||||||
String Addendum = baseClass.getSimpleName();
|
|
||||||
Class<? extends AEBaseTile> myClass = baseClass;
|
|
||||||
|
|
||||||
String path = f;
|
|
||||||
|
|
||||||
for( final String name : this.desc )
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
final String newPath = path + ';' + name;
|
|
||||||
myClass = this.getClassByDesc( baseClass.getSimpleName(), newPath, f, this.interfaces2Layer.get( Class.forName( name ) ) );
|
|
||||||
path = newPath;
|
|
||||||
}
|
|
||||||
catch( final Throwable t )
|
|
||||||
{
|
|
||||||
AELog.warn( "Error loading " + name );
|
|
||||||
AELog.debug( t );
|
|
||||||
}
|
|
||||||
f = myClass.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.tileImplementations.put( description, myClass );
|
|
||||||
|
|
||||||
return myClass;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Class getClassByDesc( final String addendum, final String fullPath, final String root, final String next )
|
private Class<? extends AEBaseTile> generateCombinedClass( CacheKey cacheKey )
|
||||||
{
|
{
|
||||||
if( this.roots.get( fullPath ) != null )
|
final Class<? extends AEBaseTile> parentClass;
|
||||||
|
|
||||||
|
// Get the list of interfaces that still need to be implemented beyond the current one
|
||||||
|
List<String> remainingInterfaces = cacheKey.getInterfaces().subList( 1, cacheKey.getInterfaces().size() );
|
||||||
|
|
||||||
|
// We are not at the root of the class hierarchy yet
|
||||||
|
if( !remainingInterfaces.isEmpty() )
|
||||||
{
|
{
|
||||||
return this.roots.get( fullPath );
|
CacheKey parentKey = new CacheKey( cacheKey.getBaseClass(), remainingInterfaces );
|
||||||
|
parentClass = cache.getUnchecked( parentKey );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parentClass = cacheKey.getBaseClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Which interface should be implemented in this layer?
|
||||||
|
String interfaceName = cacheKey.getInterfaces().get( 0 );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// This is the particular interface that this layer was registered for. Loading the class may fail if i.e. an API is broken or not present
|
||||||
|
// and in this case, the layer will be skipped!
|
||||||
|
Class<?> interfaceClass = Class.forName( interfaceName );
|
||||||
|
String layerImpl = this.interfaces2Layer.get( interfaceClass );
|
||||||
|
|
||||||
|
return this.getClassByDesc( parentClass, layerImpl );
|
||||||
|
}
|
||||||
|
catch( final Throwable t )
|
||||||
|
{
|
||||||
|
AELog.warn( "Error loading " + interfaceName );
|
||||||
|
AELog.debug( t );
|
||||||
|
return parentClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings( "unchecked" )
|
||||||
|
private Class<? extends AEBaseTile> getClassByDesc( Class<? extends AEBaseTile> baseClass, final String next )
|
||||||
|
{
|
||||||
final ClassWriter cw = new ClassWriter( ClassWriter.COMPUTE_MAXS );
|
final ClassWriter cw = new ClassWriter( ClassWriter.COMPUTE_MAXS );
|
||||||
final ClassNode n = this.getReader( next );
|
final ClassNode n = this.getReader( next );
|
||||||
final String originalName = n.name;
|
final String originalName = n.name;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
n.name = n.name + '_' + addendum;
|
n.name = n.name + '_' + baseClass.getSimpleName();
|
||||||
n.superName = Class.forName( root ).getName().replace( ".", "/" );
|
n.superName = baseClass.getName().replace( '.', '/' );
|
||||||
}
|
}
|
||||||
catch( final Throwable t )
|
catch( final Throwable t )
|
||||||
{
|
{
|
||||||
@@ -167,14 +178,13 @@ public class ApiPart implements IPartHelper
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Object fish = clazz.newInstance();
|
final Object fish = clazz.newInstance();
|
||||||
final Class rootC = Class.forName( root );
|
|
||||||
|
|
||||||
boolean hasError = false;
|
boolean hasError = false;
|
||||||
|
|
||||||
if( !rootC.isInstance( fish ) )
|
if( !baseClass.isInstance( fish ) )
|
||||||
{
|
{
|
||||||
hasError = true;
|
hasError = true;
|
||||||
AELog.error( "Error, Expected layer to implement " + root + " did not." );
|
AELog.error( "Error, Expected layer to implement " + baseClass + " did not." );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( fish instanceof LayerBase )
|
if( fish instanceof LayerBase )
|
||||||
@@ -183,19 +193,16 @@ public class ApiPart implements IPartHelper
|
|||||||
AELog.error( "Error, Expected layer to NOT implement LayerBase but it DID." );
|
AELog.error( "Error, Expected layer to NOT implement LayerBase but it DID." );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !fullPath.contains( ".fmp." ) )
|
if( !( fish instanceof TileCableBus ) )
|
||||||
{
|
{
|
||||||
if( !( fish instanceof TileCableBus ) )
|
hasError = true;
|
||||||
{
|
AELog.error( "Error, Expected layer to implement TileCableBus did not." );
|
||||||
hasError = true;
|
}
|
||||||
AELog.error( "Error, Expected layer to implement TileCableBus did not." );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !( fish instanceof TileEntity ) )
|
if( !( fish instanceof TileEntity ) )
|
||||||
{
|
{
|
||||||
hasError = true;
|
hasError = true;
|
||||||
AELog.error( "Error, Expected layer to implement TileEntity did not." );
|
AELog.error( "Error, Expected layer to implement TileEntity did not." );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !hasError )
|
if( !hasError )
|
||||||
@@ -209,7 +216,6 @@ public class ApiPart implements IPartHelper
|
|||||||
AELog.debug( t );
|
AELog.debug( t );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.roots.put( fullPath, clazz );
|
|
||||||
return clazz;
|
return clazz;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,10 +266,19 @@ public class ApiPart implements IPartHelper
|
|||||||
defineClassMethod.setAccessible( true );
|
defineClassMethod.setAccessible( true );
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Object[] argsA = { name, name, b };
|
final Object[] argsA = {
|
||||||
|
name,
|
||||||
|
name,
|
||||||
|
b
|
||||||
|
};
|
||||||
b = (byte[]) runTransformersMethod.invoke( loader, argsA );
|
b = (byte[]) runTransformersMethod.invoke( loader, argsA );
|
||||||
|
|
||||||
final Object[] args = { name, b, 0, b.length };
|
final Object[] args = {
|
||||||
|
name,
|
||||||
|
b,
|
||||||
|
0,
|
||||||
|
b.length
|
||||||
|
};
|
||||||
clazz = (Class) defineClassMethod.invoke( loader, args );
|
clazz = (Class) defineClassMethod.invoke( loader, args );
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@@ -319,7 +334,7 @@ public class ApiPart implements IPartHelper
|
|||||||
private static class DefaultPackageClassNameRemapper extends Remapper
|
private static class DefaultPackageClassNameRemapper extends Remapper
|
||||||
{
|
{
|
||||||
|
|
||||||
private final HashMap<String, String> inputOutput = new HashMap<String, String>();
|
private final HashMap<String, String> inputOutput = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String map( final String typeName )
|
public String map( final String typeName )
|
||||||
@@ -332,4 +347,53 @@ public class ApiPart implements IPartHelper
|
|||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static class CacheKey
|
||||||
|
{
|
||||||
|
private final Class<? extends AEBaseTile> baseClass;
|
||||||
|
|
||||||
|
private final List<String> interfaces;
|
||||||
|
|
||||||
|
private CacheKey( Class<? extends AEBaseTile> baseClass, List<String> interfaces )
|
||||||
|
{
|
||||||
|
this.baseClass = baseClass;
|
||||||
|
this.interfaces = ImmutableList.copyOf( interfaces );
|
||||||
|
}
|
||||||
|
|
||||||
|
private Class<? extends AEBaseTile> getBaseClass()
|
||||||
|
{
|
||||||
|
return baseClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getInterfaces()
|
||||||
|
{
|
||||||
|
return interfaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object o )
|
||||||
|
{
|
||||||
|
if( this == o )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if( o == null || getClass() != o.getClass() )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
CacheKey cacheKey = (CacheKey) o;
|
||||||
|
|
||||||
|
return baseClass.equals( cacheKey.baseClass ) && interfaces.equals( cacheKey.interfaces );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
int result = baseClass.hashCode();
|
||||||
|
result = 31 * result + interfaces.hashCode();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -203,20 +203,22 @@ public final class ApiBlocks implements IBlocks
|
|||||||
{
|
{
|
||||||
// this.quartzOre = new BlockDefinition( "ore.quartz", new OreQuartz() );
|
// this.quartzOre = new BlockDefinition( "ore.quartz", new OreQuartz() );
|
||||||
this.quartzOre = registry.block( "quartz_ore", BlockQuartzOre::new )
|
this.quartzOre = registry.block( "quartz_ore", BlockQuartzOre::new )
|
||||||
|
.features( AEFeature.CERTUS_ORE )
|
||||||
.postInit( ( block, item ) ->
|
.postInit( ( block, item ) ->
|
||||||
{
|
{
|
||||||
OreDictionary.registerOre( "oreCertusQuartz", new ItemStack( block ) );
|
OreDictionary.registerOre( "oreCertusQuartz", new ItemStack( block ) );
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
this.quartzOreCharged = registry.block( "charged_quartz_ore", BlockChargedQuartzOre::new )
|
this.quartzOreCharged = registry.block( "charged_quartz_ore", BlockChargedQuartzOre::new )
|
||||||
|
.features( AEFeature.CERTUS_ORE, AEFeature.CHARGED_CERTUS_ORE )
|
||||||
.postInit( ( block, item ) ->
|
.postInit( ( block, item ) ->
|
||||||
{
|
{
|
||||||
OreDictionary.registerOre( "oreCertusQuartz", new ItemStack( block ) );
|
OreDictionary.registerOre( "oreCertusQuartz", new ItemStack( block ) );
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
this.matrixFrame = registry.block( "matrix_frame", BlockMatrixFrame::new ).features( AEFeature.SpatialIO ).build();
|
this.matrixFrame = registry.block( "matrix_frame", BlockMatrixFrame::new ).features( AEFeature.SPATIAL_IO ).build();
|
||||||
|
|
||||||
FeatureFactory deco = registry.features( AEFeature.DecorativeQuartzBlocks );
|
FeatureFactory deco = registry.features( AEFeature.DECORATIVE_QUARTZ_BLOCKS );
|
||||||
this.quartzBlock = deco.block( "quartz_block", BlockQuartz::new ).build();
|
this.quartzBlock = deco.block( "quartz_block", BlockQuartz::new ).build();
|
||||||
this.quartzPillar = deco.block( "quartz_pillar", BlockQuartzPillar::new ).build();
|
this.quartzPillar = deco.block( "quartz_pillar", BlockQuartzPillar::new ).build();
|
||||||
this.chiseledQuartzBlock = deco.block( "chiseled_quartz_block", BlockChiseledQuartz::new ).build();
|
this.chiseledQuartzBlock = deco.block( "chiseled_quartz_block", BlockChiseledQuartz::new ).build();
|
||||||
@@ -233,11 +235,11 @@ public final class ApiBlocks implements IBlocks
|
|||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
this.quartzVibrantGlass = deco.block( "quartz_vibrant_glass", BlockQuartzLamp::new )
|
this.quartzVibrantGlass = deco.block( "quartz_vibrant_glass", BlockQuartzLamp::new )
|
||||||
.addFeatures( AEFeature.DecorativeLights )
|
.addFeatures( AEFeature.DECORATIVE_LIGHTS )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.quartzFixture = registry.block( "quartz_fixture", BlockQuartzFixture::new )
|
this.quartzFixture = registry.block( "quartz_fixture", BlockQuartzFixture::new )
|
||||||
.features( AEFeature.DecorativeLights )
|
.features( AEFeature.DECORATIVE_LIGHTS )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -248,32 +250,33 @@ public final class ApiBlocks implements IBlocks
|
|||||||
this.skyStoneSmallBrick = deco.block( "sky_stone_small_brick", () -> new BlockSkyStone( SkystoneType.SMALL_BRICK ) ).build();
|
this.skyStoneSmallBrick = deco.block( "sky_stone_small_brick", () -> new BlockSkyStone( SkystoneType.SMALL_BRICK ) ).build();
|
||||||
|
|
||||||
this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( SkyChestType.STONE ) )
|
this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( SkyChestType.STONE ) )
|
||||||
.features( AEFeature.SkyStoneChests )
|
.features( AEFeature.SKY_STONE_CHESTS )
|
||||||
.rendering( new SkyChestRenderingCustomizer( SkyChestType.STONE ) )
|
.rendering( new SkyChestRenderingCustomizer( SkyChestType.STONE ) )
|
||||||
.build();
|
.build();
|
||||||
this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( SkyChestType.BLOCK ) )
|
this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( SkyChestType.BLOCK ) )
|
||||||
.features( AEFeature.SkyStoneChests )
|
.features( AEFeature.SKY_STONE_CHESTS )
|
||||||
.rendering( new SkyChestRenderingCustomizer( SkyChestType.BLOCK ) )
|
.rendering( new SkyChestRenderingCustomizer( SkyChestType.BLOCK ) )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
this.skyCompass = registry.block( "sky_compass", BlockSkyCompass::new )
|
this.skyCompass = registry.block( "sky_compass", BlockSkyCompass::new )
|
||||||
.features( AEFeature.MeteoriteCompass )
|
.features( AEFeature.METEORITE_COMPASS )
|
||||||
.rendering( new SkyCompassRendering() )
|
.rendering( new SkyCompassRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.grindstone = registry.block( "grindstone", BlockGrinder::new ).features( AEFeature.GrindStone ).build();
|
this.grindstone = registry.block( "grindstone", BlockGrinder::new ).features( AEFeature.GRIND_STONE ).build();
|
||||||
this.crank = registry.block( "crank", BlockCrank::new )
|
this.crank = registry.block( "crank", BlockCrank::new )
|
||||||
.features( AEFeature.GrindStone )
|
.features( AEFeature.GRIND_STONE )
|
||||||
.rendering( new CrankRendering() )
|
.rendering( new CrankRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.inscriber = registry.block( "inscriber", BlockInscriber::new )
|
this.inscriber = registry.block( "inscriber", BlockInscriber::new )
|
||||||
.features( AEFeature.Inscriber )
|
.features( AEFeature.INSCRIBER )
|
||||||
.rendering( new InscriberRendering() )
|
.rendering( new InscriberRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.wirelessAccessPoint = registry.block( "wireless_access_point", BlockWireless::new )
|
this.wirelessAccessPoint = registry.block( "wireless_access_point", BlockWireless::new )
|
||||||
.features( AEFeature.WirelessAccessTerminal )
|
.features( AEFeature.WIRELESS_ACCESS_TERMINAL )
|
||||||
.rendering( new WirelessRendering() )
|
.rendering( new WirelessRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.charger = registry.block( "charger", BlockCharger::new )
|
this.charger = registry.block( "charger", BlockCharger::new )
|
||||||
|
.features( AEFeature.CHARGER )
|
||||||
.rendering( new BlockRenderingCustomizer()
|
.rendering( new BlockRenderingCustomizer()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@@ -284,67 +287,71 @@ public final class ApiBlocks implements IBlocks
|
|||||||
}
|
}
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
this.tinyTNT = registry.block( "tiny_tnt", BlockTinyTNT::new ).features( AEFeature.TinyTNT )
|
this.tinyTNT = registry.block( "tiny_tnt", BlockTinyTNT::new )
|
||||||
|
.features( AEFeature.TINY_TNT )
|
||||||
.postInit( ( block, item ) ->
|
.postInit( ( block, item ) ->
|
||||||
{
|
{
|
||||||
BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject( item, new DispenserBehaviorTinyTNT() );
|
BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject( item, new DispenserBehaviorTinyTNT() );
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
this.securityStation = registry.block( "security_station", BlockSecurityStation::new )
|
this.securityStation = registry.block( "security_station", BlockSecurityStation::new )
|
||||||
.features( AEFeature.Security )
|
.features( AEFeature.SECURITY )
|
||||||
.rendering( new SecurityStationRendering() )
|
.rendering( new SecurityStationRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.quantumRing = registry.block( "quantum_ring", BlockQuantumRing::new )
|
this.quantumRing = registry.block( "quantum_ring", BlockQuantumRing::new )
|
||||||
.features( AEFeature.QuantumNetworkBridge )
|
.features( AEFeature.QUANTUM_NETWORK_BRIDGE )
|
||||||
.rendering( new QuantumBridgeRendering() )
|
.rendering( new QuantumBridgeRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.quantumLink = registry.block( "quantum_link", BlockQuantumLinkChamber::new )
|
this.quantumLink = registry.block( "quantum_link", BlockQuantumLinkChamber::new )
|
||||||
.features( AEFeature.QuantumNetworkBridge )
|
.features( AEFeature.QUANTUM_NETWORK_BRIDGE )
|
||||||
.rendering( new QuantumBridgeRendering() )
|
.rendering( new QuantumBridgeRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.spatialPylon = registry.block( "spatial_pylon", BlockSpatialPylon::new )
|
this.spatialPylon = registry.block( "spatial_pylon", BlockSpatialPylon::new )
|
||||||
.features( AEFeature.SpatialIO )
|
.features( AEFeature.SPATIAL_IO )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new SpatialPylonRendering() )
|
.rendering( new SpatialPylonRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.spatialIOPort = registry.block( "spatial_io_port", BlockSpatialIOPort::new ).features( AEFeature.SpatialIO ).build();
|
this.spatialIOPort = registry.block( "spatial_io_port", BlockSpatialIOPort::new ).features( AEFeature.SPATIAL_IO ).build();
|
||||||
this.controller = registry.block( "controller", BlockController::new )
|
this.controller = registry.block( "controller", BlockController::new )
|
||||||
.features( AEFeature.Channels )
|
.features( AEFeature.CHANNELS )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new ControllerRendering() )
|
.rendering( new ControllerRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.drive = registry.block( "drive", BlockDrive::new )
|
this.drive = registry.block( "drive", BlockDrive::new )
|
||||||
.features( AEFeature.StorageCells, AEFeature.MEDrive )
|
.features( AEFeature.STORAGE_CELLS, AEFeature.ME_DRIVE )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new DriveRendering() )
|
.rendering( new DriveRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.chest = registry.block( "chest", BlockChest::new )
|
this.chest = registry.block( "chest", BlockChest::new )
|
||||||
.features( AEFeature.StorageCells, AEFeature.MEChest )
|
.features( AEFeature.STORAGE_CELLS, AEFeature.ME_CHEST )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.rendering( new ChestRendering() )
|
.rendering( new ChestRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.iface = registry.block( "interface", BlockInterface::new ).build();
|
this.iface = registry.block( "interface", BlockInterface::new ).features( AEFeature.INTERFACE ).build();
|
||||||
this.cellWorkbench = registry.block( "cell_workbench", BlockCellWorkbench::new ).features( AEFeature.StorageCells ).build();
|
this.cellWorkbench = registry.block( "cell_workbench", BlockCellWorkbench::new ).features( AEFeature.STORAGE_CELLS ).build();
|
||||||
this.iOPort = registry.block( "io_port", BlockIOPort::new ).features( AEFeature.StorageCells, AEFeature.IOPort ).build();
|
this.iOPort = registry.block( "io_port", BlockIOPort::new ).features( AEFeature.STORAGE_CELLS, AEFeature.IO_PORT ).build();
|
||||||
this.condenser = registry.block( "condenser", BlockCondenser::new ).build();
|
this.condenser = registry.block( "condenser", BlockCondenser::new ).features( AEFeature.CONDENSER ).build();
|
||||||
this.energyAcceptor = registry.block( "energy_acceptor", BlockEnergyAcceptor::new ).build();
|
this.energyAcceptor = registry.block( "energy_acceptor", BlockEnergyAcceptor::new ).features( AEFeature.ENERGY_ACCEPTOR ).build();
|
||||||
this.vibrationChamber = registry.block( "vibration_chamber", BlockVibrationChamber::new ).features( AEFeature.PowerGen ).build();
|
this.vibrationChamber = registry.block( "vibration_chamber", BlockVibrationChamber::new ).features( AEFeature.POWER_GEN ).build();
|
||||||
this.quartzGrowthAccelerator = registry.block( "quartz_growth_accelerator", BlockQuartzGrowthAccelerator::new ).build();
|
this.quartzGrowthAccelerator = registry.block( "quartz_growth_accelerator", BlockQuartzGrowthAccelerator::new )
|
||||||
|
.features( AEFeature.CRYSTAL_GROWTH_ACCELERATOR )
|
||||||
|
.build();
|
||||||
this.energyCell = registry.block( "energy_cell", BlockEnergyCell::new )
|
this.energyCell = registry.block( "energy_cell", BlockEnergyCell::new )
|
||||||
|
.features( AEFeature.ENERGY_CELLS )
|
||||||
.item( AEBaseItemBlockChargeable::new )
|
.item( AEBaseItemBlockChargeable::new )
|
||||||
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "energy_cell" ) ) )
|
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "energy_cell" ) ) )
|
||||||
.build();
|
.build();
|
||||||
this.energyCellDense = registry.block( "dense_energy_cell", BlockDenseEnergyCell::new )
|
this.energyCellDense = registry.block( "dense_energy_cell", BlockDenseEnergyCell::new )
|
||||||
.features( AEFeature.DenseEnergyCells )
|
.features( AEFeature.ENERGY_CELLS, AEFeature.DENSE_ENERGY_CELLS )
|
||||||
.item( AEBaseItemBlockChargeable::new )
|
.item( AEBaseItemBlockChargeable::new )
|
||||||
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "dense_energy_cell" ) ) )
|
.rendering( new BlockEnergyCellRendering( new ResourceLocation( AppEng.MOD_ID, "dense_energy_cell" ) ) )
|
||||||
.build();
|
.build();
|
||||||
this.energyCellCreative = registry.block( "creative_energy_cell", BlockCreativeEnergyCell::new )
|
this.energyCellCreative = registry.block( "creative_energy_cell", BlockCreativeEnergyCell::new )
|
||||||
.features( AEFeature.Creative )
|
.features( AEFeature.CREATIVE )
|
||||||
.item( AEBaseItemBlockChargeable::new )
|
.item( AEBaseItemBlockChargeable::new )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
FeatureFactory crafting = registry.features( AEFeature.CraftingCPU );
|
FeatureFactory crafting = registry.features( AEFeature.CRAFTING_CPU );
|
||||||
this.craftingUnit = crafting.block( "crafting_unit", () -> new BlockCraftingUnit( CraftingUnitType.UNIT ) )
|
this.craftingUnit = crafting.block( "crafting_unit", () -> new BlockCraftingUnit( CraftingUnitType.UNIT ) )
|
||||||
.rendering( new CraftingCubeRendering( "crafting_unit", CraftingUnitType.UNIT ) )
|
.rendering( new CraftingCubeRendering( "crafting_unit", CraftingUnitType.UNIT ) )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
@@ -378,12 +385,13 @@ public final class ApiBlocks implements IBlocks
|
|||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
this.molecularAssembler = registry.block( "molecular_assembler", BlockMolecularAssembler::new ).features( AEFeature.MolecularAssembler ).build();
|
this.molecularAssembler = registry.block( "molecular_assembler", BlockMolecularAssembler::new ).features( AEFeature.MOLECULAR_ASSEMBLER ).build();
|
||||||
this.lightDetector = registry.block( "light_detector", BlockLightDetector::new ).features( AEFeature.LightDetector )
|
this.lightDetector = registry.block( "light_detector", BlockLightDetector::new )
|
||||||
|
.features( AEFeature.LIGHT_DETECTOR )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.paint = registry.block( "paint", BlockPaint::new )
|
this.paint = registry.block( "paint", BlockPaint::new )
|
||||||
.features( AEFeature.PaintBalls )
|
.features( AEFeature.PAINT_BALLS )
|
||||||
.rendering( new PaintRendering() )
|
.rendering( new PaintRendering() )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -398,7 +406,8 @@ public final class ApiBlocks implements IBlocks
|
|||||||
|
|
||||||
this.multiPart = registry.block( "cable_bus", BlockCableBus::new )
|
this.multiPart = registry.block( "cable_bus", BlockCableBus::new )
|
||||||
.rendering( new CableBusRendering( partModels ) )
|
.rendering( new CableBusRendering( partModels ) )
|
||||||
.postInit( (block, item) -> {
|
.postInit( ( block, item ) ->
|
||||||
|
{
|
||||||
( (BlockCableBus) block ).setupTile();
|
( (BlockCableBus) block ).setupTile();
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
@@ -413,19 +422,19 @@ public final class ApiBlocks implements IBlocks
|
|||||||
this.quartzPillarSlab = makeSlab( "quartz_pillar_slab", "quartz_pillar_double_slab", registry, this.quartzPillar() );
|
this.quartzPillarSlab = makeSlab( "quartz_pillar_slab", "quartz_pillar_double_slab", registry, this.quartzPillar() );
|
||||||
|
|
||||||
this.itemGen = registry.block( "debug_item_gen", BlockItemGen::new )
|
this.itemGen = registry.block( "debug_item_gen", BlockItemGen::new )
|
||||||
.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.chunkLoader = registry.block( "debug_chunk_loader", BlockChunkloader::new )
|
this.chunkLoader = registry.block( "debug_chunk_loader", BlockChunkloader::new )
|
||||||
.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.phantomNode = registry.block( "debug_phantom_node", BlockPhantomNode::new )
|
this.phantomNode = registry.block( "debug_phantom_node", BlockPhantomNode::new )
|
||||||
.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
this.cubeGenerator = registry.block( "debug_cube_gen", BlockCubeGenerator::new )
|
this.cubeGenerator = registry.block( "debug_cube_gen", BlockCubeGenerator::new )
|
||||||
.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative )
|
.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE )
|
||||||
.useCustomItemModel()
|
.useCustomItemModel()
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
@@ -440,7 +449,7 @@ public final class ApiBlocks implements IBlocks
|
|||||||
Block block = blockDef.maybeBlock().get();
|
Block block = blockDef.maybeBlock().get();
|
||||||
|
|
||||||
IBlockDefinition slabDef = registry.block( slabId, () -> new BlockSlabCommon.Half( block ) )
|
IBlockDefinition slabDef = registry.block( slabId, () -> new BlockSlabCommon.Half( block ) )
|
||||||
.features( AEFeature.DecorativeQuartzBlocks )
|
.features( AEFeature.DECORATIVE_QUARTZ_BLOCKS )
|
||||||
.disableItem()
|
.disableItem()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -453,7 +462,7 @@ public final class ApiBlocks implements IBlocks
|
|||||||
|
|
||||||
// Reigster the double slab variant as well
|
// Reigster the double slab variant as well
|
||||||
IBlockDefinition doubleSlabDef = registry.block( doubleSlabId, () -> new BlockSlabCommon.Double( slabBlock, block ) )
|
IBlockDefinition doubleSlabDef = registry.block( doubleSlabId, () -> new BlockSlabCommon.Double( slabBlock, block ) )
|
||||||
.features( AEFeature.DecorativeQuartzBlocks )
|
.features( AEFeature.DECORATIVE_QUARTZ_BLOCKS )
|
||||||
.disableItem()
|
.disableItem()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -463,7 +472,7 @@ public final class ApiBlocks implements IBlocks
|
|||||||
|
|
||||||
// Make the slab item
|
// Make the slab item
|
||||||
IItemDefinition itemDef = registry.item( slabId, () -> new ItemSlab( slabBlock, slabBlock, doubleSlabBlock ) )
|
IItemDefinition itemDef = registry.item( slabId, () -> new ItemSlab( slabBlock, slabBlock, doubleSlabBlock ) )
|
||||||
.features( AEFeature.DecorativeQuartzBlocks )
|
.features( AEFeature.DECORATIVE_QUARTZ_BLOCKS )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
Verify.verify( itemDef.maybeItem().isPresent() );
|
Verify.verify( itemDef.maybeItem().isPresent() );
|
||||||
@@ -475,7 +484,7 @@ public final class ApiBlocks implements IBlocks
|
|||||||
private static IBlockDefinition makeStairs( String registryName, FeatureFactory registry, IBlockDefinition block )
|
private static IBlockDefinition makeStairs( String registryName, FeatureFactory registry, IBlockDefinition block )
|
||||||
{
|
{
|
||||||
return registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
|
return registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
|
||||||
.features( AEFeature.DecorativeQuartzBlocks )
|
.features( AEFeature.DECORATIVE_QUARTZ_BLOCKS )
|
||||||
.rendering( new BlockRenderingCustomizer()
|
.rendering( new BlockRenderingCustomizer()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -125,85 +125,113 @@ public final class ApiItems implements IItems
|
|||||||
|
|
||||||
public ApiItems( FeatureFactory registry )
|
public ApiItems( FeatureFactory registry )
|
||||||
{
|
{
|
||||||
FeatureFactory certusTools = registry.features( AEFeature.CertusQuartzTools );
|
FeatureFactory certusTools = registry.features( AEFeature.CERTUS_QUARTZ_TOOLS );
|
||||||
this.certusQuartzAxe = certusTools.item( "certus_quartz_axe", () -> new ToolQuartzAxe( AEFeature.CertusQuartzTools ) ).addFeatures( AEFeature.QuartzAxe ).build();
|
this.certusQuartzAxe = certusTools.item( "certus_quartz_axe", () -> new ToolQuartzAxe( AEFeature.CERTUS_QUARTZ_TOOLS ) )
|
||||||
this.certusQuartzHoe = certusTools.item( "certus_quartz_hoe", () -> new ToolQuartzHoe( AEFeature.CertusQuartzTools ) ).addFeatures( AEFeature.QuartzHoe ).build();
|
.addFeatures( AEFeature.QUARTZ_AXE )
|
||||||
this.certusQuartzShovel = certusTools.item( "certus_quartz_spade", () -> new ToolQuartzSpade( AEFeature.CertusQuartzTools ) ).addFeatures( AEFeature.QuartzSpade ).build();
|
.build();
|
||||||
this.certusQuartzPick = certusTools.item( "certus_quartz_pickaxe", () -> new ToolQuartzPickaxe( AEFeature.CertusQuartzTools ) ).addFeatures( AEFeature.QuartzPickaxe ).build();
|
this.certusQuartzHoe = certusTools.item( "certus_quartz_hoe", () -> new ToolQuartzHoe( AEFeature.CERTUS_QUARTZ_TOOLS ) )
|
||||||
this.certusQuartzSword = certusTools.item( "certus_quartz_sword", () -> new ToolQuartzSword( AEFeature.CertusQuartzTools ) ).addFeatures( AEFeature.QuartzSword ).build();
|
.addFeatures( AEFeature.QUARTZ_HOE )
|
||||||
this.certusQuartzWrench = certusTools.item( "certus_quartz_wrench", ToolQuartzWrench::new ).addFeatures( AEFeature.QuartzWrench ).build();
|
.build();
|
||||||
this.certusQuartzKnife = certusTools.item( "certus_quartz_cutting_knife", () -> new ToolQuartzCuttingKnife( AEFeature.CertusQuartzTools ) ).addFeatures( AEFeature.QuartzKnife ).build();
|
this.certusQuartzShovel = certusTools.item( "certus_quartz_spade", () -> new ToolQuartzSpade( AEFeature.CERTUS_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_SPADE )
|
||||||
|
.build();
|
||||||
|
this.certusQuartzPick = certusTools.item( "certus_quartz_pickaxe", () -> new ToolQuartzPickaxe( AEFeature.CERTUS_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_PICKAXE )
|
||||||
|
.build();
|
||||||
|
this.certusQuartzSword = certusTools.item( "certus_quartz_sword", () -> new ToolQuartzSword( AEFeature.CERTUS_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_SWORD )
|
||||||
|
.build();
|
||||||
|
this.certusQuartzWrench = certusTools.item( "certus_quartz_wrench", ToolQuartzWrench::new ).addFeatures( AEFeature.QUARTZ_WRENCH ).build();
|
||||||
|
this.certusQuartzKnife = certusTools.item( "certus_quartz_cutting_knife", () -> new ToolQuartzCuttingKnife( AEFeature.CERTUS_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_KNIFE )
|
||||||
|
.build();
|
||||||
|
|
||||||
FeatureFactory netherTools = registry.features( AEFeature.NetherQuartzTools );
|
FeatureFactory netherTools = registry.features( AEFeature.NETHER_QUARTZ_TOOLS );
|
||||||
this.netherQuartzAxe = netherTools.item( "nether_quartz_axe", () -> new ToolQuartzAxe( AEFeature.NetherQuartzTools ) ).addFeatures( AEFeature.QuartzAxe ).build();
|
this.netherQuartzAxe = netherTools.item( "nether_quartz_axe", () -> new ToolQuartzAxe( AEFeature.NETHER_QUARTZ_TOOLS ) )
|
||||||
this.netherQuartzHoe = netherTools.item( "nether_quartz_hoe", () -> new ToolQuartzHoe( AEFeature.NetherQuartzTools ) ).addFeatures( AEFeature.QuartzHoe ).build();
|
.addFeatures( AEFeature.QUARTZ_AXE )
|
||||||
this.netherQuartzShovel = netherTools.item( "nether_quartz_spade", () -> new ToolQuartzSpade( AEFeature.NetherQuartzTools ) ).addFeatures( AEFeature.QuartzSpade ).build();
|
.build();
|
||||||
this.netherQuartzPick = netherTools.item( "nether_quartz_pickaxe", () -> new ToolQuartzPickaxe( AEFeature.NetherQuartzTools ) ).addFeatures( AEFeature.QuartzPickaxe ).build();
|
this.netherQuartzHoe = netherTools.item( "nether_quartz_hoe", () -> new ToolQuartzHoe( AEFeature.NETHER_QUARTZ_TOOLS ) )
|
||||||
this.netherQuartzSword = netherTools.item( "nether_quartz_sword", () -> new ToolQuartzSword( AEFeature.NetherQuartzTools ) ).addFeatures( AEFeature.QuartzSword ).build();
|
.addFeatures( AEFeature.QUARTZ_HOE )
|
||||||
this.netherQuartzWrench = netherTools.item( "nether_quartz_wrench", ToolQuartzWrench::new ).addFeatures( AEFeature.QuartzWrench ).build();
|
.build();
|
||||||
this.netherQuartzKnife = netherTools.item( "nether_quartz_cutting_knife", () -> new ToolQuartzCuttingKnife( AEFeature.NetherQuartzTools ) ).addFeatures( AEFeature.QuartzKnife ).build();
|
this.netherQuartzShovel = netherTools.item( "nether_quartz_spade", () -> new ToolQuartzSpade( AEFeature.NETHER_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_SPADE )
|
||||||
|
.build();
|
||||||
|
this.netherQuartzPick = netherTools.item( "nether_quartz_pickaxe", () -> new ToolQuartzPickaxe( AEFeature.NETHER_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_PICKAXE )
|
||||||
|
.build();
|
||||||
|
this.netherQuartzSword = netherTools.item( "nether_quartz_sword", () -> new ToolQuartzSword( AEFeature.NETHER_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_SWORD )
|
||||||
|
.build();
|
||||||
|
this.netherQuartzWrench = netherTools.item( "nether_quartz_wrench", ToolQuartzWrench::new ).addFeatures( AEFeature.QUARTZ_WRENCH ).build();
|
||||||
|
this.netherQuartzKnife = netherTools.item( "nether_quartz_cutting_knife", () -> new ToolQuartzCuttingKnife( AEFeature.NETHER_QUARTZ_TOOLS ) )
|
||||||
|
.addFeatures( AEFeature.QUARTZ_KNIFE )
|
||||||
|
.build();
|
||||||
|
|
||||||
FeatureFactory powerTools = registry.features( AEFeature.PoweredTools );
|
FeatureFactory powerTools = registry.features( AEFeature.POWERED_TOOLS );
|
||||||
this.entropyManipulator = powerTools.item( "entropy_manipulator", ToolEntropyManipulator::new )
|
this.entropyManipulator = powerTools.item( "entropy_manipulator", ToolEntropyManipulator::new )
|
||||||
.addFeatures( AEFeature.EntropyManipulator )
|
.addFeatures( AEFeature.ENTROPY_MANIPULATOR )
|
||||||
.dispenserBehavior( DispenserBlockTool::new )
|
.dispenserBehavior( DispenserBlockTool::new )
|
||||||
.build();
|
.build();
|
||||||
this.wirelessTerminal = powerTools.item( "wireless_terminal", ToolWirelessTerminal::new ).addFeatures( AEFeature.WirelessAccessTerminal ).build();
|
this.wirelessTerminal = powerTools.item( "wireless_terminal", ToolWirelessTerminal::new ).addFeatures( AEFeature.WIRELESS_ACCESS_TERMINAL ).build();
|
||||||
this.chargedStaff = powerTools.item( "charged_staff", ToolChargedStaff::new ).addFeatures( AEFeature.ChargedStaff ).build();
|
this.chargedStaff = powerTools.item( "charged_staff", ToolChargedStaff::new ).addFeatures( AEFeature.CHARGED_STAFF ).build();
|
||||||
this.massCannon = powerTools.item( "matter_cannon", ToolMatterCannon::new )
|
this.massCannon = powerTools.item( "matter_cannon", ToolMatterCannon::new )
|
||||||
.addFeatures( AEFeature.MatterCannon )
|
.addFeatures( AEFeature.MATTER_CANNON )
|
||||||
.dispenserBehavior( DispenserMatterCannon::new )
|
.dispenserBehavior( DispenserMatterCannon::new )
|
||||||
.build();
|
.build();
|
||||||
this.portableCell = powerTools.item( "portable_cell", ToolPortableCell::new ).addFeatures( AEFeature.PortableCell, AEFeature.StorageCells ).build();
|
this.portableCell = powerTools.item( "portable_cell", ToolPortableCell::new ).addFeatures( AEFeature.PORTABLE_CELL, AEFeature.STORAGE_CELLS ).build();
|
||||||
this.colorApplicator = powerTools.item( "color_applicator", ToolColorApplicator::new )
|
this.colorApplicator = powerTools.item( "color_applicator", ToolColorApplicator::new )
|
||||||
.addFeatures( AEFeature.ColorApplicator )
|
.addFeatures( AEFeature.COLOR_APPLICATOR )
|
||||||
.dispenserBehavior( DispenserBlockTool::new )
|
.dispenserBehavior( DispenserBlockTool::new )
|
||||||
.rendering( new ToolColorApplicatorRendering() )
|
.rendering( new ToolColorApplicatorRendering() )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
this.biometricCard = registry.item( "biometric_card", ToolBiometricCard::new )
|
this.biometricCard = registry.item( "biometric_card", ToolBiometricCard::new )
|
||||||
.rendering( new ToolBiometricCardRendering() )
|
.rendering( new ToolBiometricCardRendering() )
|
||||||
.features( AEFeature.Security ).build();
|
.features( AEFeature.SECURITY )
|
||||||
this.memoryCard = registry.item( "memory_card", ToolMemoryCard::new ).build();
|
.build();
|
||||||
this.networkTool = registry.item( "network_tool", ToolNetworkTool::new ).features( AEFeature.NetworkTool ).build();
|
this.memoryCard = registry.item( "memory_card", ToolMemoryCard::new ).features( AEFeature.MEMORY_CARD ).build();
|
||||||
|
this.networkTool = registry.item( "network_tool", ToolNetworkTool::new ).features( AEFeature.NETWORK_TOOL ).build();
|
||||||
|
|
||||||
this.cellCreative = registry.item( "creative_storage_cell", ItemCreativeStorageCell::new ).features( AEFeature.StorageCells, AEFeature.Creative ).build();
|
this.cellCreative = registry.item( "creative_storage_cell", ItemCreativeStorageCell::new )
|
||||||
this.viewCell = registry.item( "view_cell", ItemViewCell::new ).build();
|
.features( AEFeature.STORAGE_CELLS, AEFeature.CREATIVE )
|
||||||
|
.build();
|
||||||
|
this.viewCell = registry.item( "view_cell", ItemViewCell::new ).features( AEFeature.VIEW_CELL ).build();
|
||||||
|
|
||||||
FeatureFactory storageCells = registry.features( AEFeature.StorageCells );
|
FeatureFactory storageCells = registry.features( AEFeature.STORAGE_CELLS );
|
||||||
this.cell1k = storageCells.item( "storage_cell_1k", () -> new ItemBasicStorageCell( MaterialType.Cell1kPart, 1 ) ).build();
|
this.cell1k = storageCells.item( "storage_cell_1k", () -> new ItemBasicStorageCell( MaterialType.Cell1kPart, 1 ) ).build();
|
||||||
this.cell4k = storageCells.item( "storage_cell_4k", () -> new ItemBasicStorageCell( MaterialType.Cell4kPart, 4 ) ).build();
|
this.cell4k = storageCells.item( "storage_cell_4k", () -> new ItemBasicStorageCell( MaterialType.Cell4kPart, 4 ) ).build();
|
||||||
this.cell16k = storageCells.item( "storage_cell_16k", () -> new ItemBasicStorageCell( MaterialType.Cell16kPart, 16 ) ).build();
|
this.cell16k = storageCells.item( "storage_cell_16k", () -> new ItemBasicStorageCell( MaterialType.Cell16kPart, 16 ) ).build();
|
||||||
this.cell64k = storageCells.item( "storage_cell_64k", () -> new ItemBasicStorageCell( MaterialType.Cell64kPart, 64 ) ).build();
|
this.cell64k = storageCells.item( "storage_cell_64k", () -> new ItemBasicStorageCell( MaterialType.Cell64kPart, 64 ) ).build();
|
||||||
|
|
||||||
FeatureFactory spatialCells = registry.features( AEFeature.SpatialIO );
|
FeatureFactory spatialCells = registry.features( AEFeature.SPATIAL_IO );
|
||||||
this.spatialCell2 = spatialCells.item( "spatial_storage_cell_2_cubed", () -> new ItemSpatialStorageCell( 2 ) ).build();
|
this.spatialCell2 = spatialCells.item( "spatial_storage_cell_2_cubed", () -> new ItemSpatialStorageCell( 2 ) ).build();
|
||||||
this.spatialCell16 = spatialCells.item( "spatial_storage_cell_16_cubed", () -> new ItemSpatialStorageCell( 16 ) ).build();
|
this.spatialCell16 = spatialCells.item( "spatial_storage_cell_16_cubed", () -> new ItemSpatialStorageCell( 16 ) ).build();
|
||||||
this.spatialCell128 = spatialCells.item( "spatial_storage_cell_128_cubed", () -> new ItemSpatialStorageCell( 128 ) ).build();
|
this.spatialCell128 = spatialCells.item( "spatial_storage_cell_128_cubed", () -> new ItemSpatialStorageCell( 128 ) ).build();
|
||||||
|
|
||||||
this.facade = registry.item( "facade", ItemFacade::new )
|
this.facade = registry.item( "facade", ItemFacade::new )
|
||||||
.features( AEFeature.Facades )
|
.features( AEFeature.FACADES )
|
||||||
.creativeTab( CreativeTabFacade.instance )
|
.creativeTab( CreativeTabFacade.instance )
|
||||||
.rendering( new FacadeRendering() )
|
.rendering( new FacadeRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.crystalSeed = registry.item( "crystal_seed", ItemCrystalSeed::new )
|
this.crystalSeed = registry.item( "crystal_seed", ItemCrystalSeed::new )
|
||||||
|
.features( AEFeature.CRYSTAL_SEEDS )
|
||||||
.rendering( new ItemCrystalSeedRendering() )
|
.rendering( new ItemCrystalSeedRendering() )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// rv1
|
// rv1
|
||||||
this.encodedPattern = registry.item( "encoded_pattern", ItemEncodedPattern::new )
|
this.encodedPattern = registry.item( "encoded_pattern", ItemEncodedPattern::new )
|
||||||
.features( AEFeature.Patterns )
|
.features( AEFeature.PATTERNS )
|
||||||
.rendering( new ItemEncodedPatternRendering() )
|
.rendering( new ItemEncodedPatternRendering() )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
this.paintBall = registry.item( "paint_ball", ItemPaintBall::new )
|
this.paintBall = registry.item( "paint_ball", ItemPaintBall::new )
|
||||||
.features( AEFeature.PaintBalls )
|
.features( AEFeature.PAINT_BALLS )
|
||||||
.rendering( new ItemPaintBallRendering() )
|
.rendering( new ItemPaintBallRendering() )
|
||||||
.build();
|
.build();
|
||||||
this.coloredPaintBall = registry.colored( this.paintBall, 0 );
|
this.coloredPaintBall = registry.colored( this.paintBall, 0 );
|
||||||
this.coloredLumenPaintBall = registry.colored( this.paintBall, 20 );
|
this.coloredLumenPaintBall = registry.colored( this.paintBall, 20 );
|
||||||
|
|
||||||
FeatureFactory debugTools = registry.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative );
|
FeatureFactory debugTools = registry.features( AEFeature.UNSUPPORTED_DEVELOPER_TOOLS, AEFeature.CREATIVE );
|
||||||
this.toolEraser = debugTools.item( "debug_eraser", ToolEraser::new ).build();
|
this.toolEraser = debugTools.item( "debug_eraser", ToolEraser::new ).build();
|
||||||
this.toolMeteoritePlacer = debugTools.item( "debug_meteorite_placer", ToolMeteoritePlacer::new ).build();
|
this.toolMeteoritePlacer = debugTools.item( "debug_meteorite_placer", ToolMeteoritePlacer::new ).build();
|
||||||
this.toolDebugCard = debugTools.item( "debug_card", ToolDebugCard::new ).build();
|
this.toolDebugCard = debugTools.item( "debug_card", ToolDebugCard::new ).build();
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public final class ApiParts implements IParts
|
|||||||
private final IItemDefinition p2PTunnelRedstone;
|
private final IItemDefinition p2PTunnelRedstone;
|
||||||
private final IItemDefinition p2PTunnelItems;
|
private final IItemDefinition p2PTunnelItems;
|
||||||
private final IItemDefinition p2PTunnelLiquids;
|
private final IItemDefinition p2PTunnelLiquids;
|
||||||
// private final IItemDefinition p2PTunnelEU;
|
private final IItemDefinition p2PTunnelEU;
|
||||||
// private final IItemDefinition p2PTunnelRF;
|
// private final IItemDefinition p2PTunnelRF;
|
||||||
private final IItemDefinition p2PTunnelLight;
|
private final IItemDefinition p2PTunnelLight;
|
||||||
// private final IItemDefinition p2PTunnelOpenComputers;
|
// private final IItemDefinition p2PTunnelOpenComputers;
|
||||||
@@ -113,7 +113,7 @@ public final class ApiParts implements IParts
|
|||||||
this.p2PTunnelRedstone = new DamagedItemDefinition( "part.tunnel.redstone", itemPart.createPart( PartType.P2PTunnelRedstone ) );
|
this.p2PTunnelRedstone = new DamagedItemDefinition( "part.tunnel.redstone", itemPart.createPart( PartType.P2PTunnelRedstone ) );
|
||||||
this.p2PTunnelItems = new DamagedItemDefinition( "part.tunnel.item", itemPart.createPart( PartType.P2PTunnelItems ) );
|
this.p2PTunnelItems = new DamagedItemDefinition( "part.tunnel.item", itemPart.createPart( PartType.P2PTunnelItems ) );
|
||||||
this.p2PTunnelLiquids = new DamagedItemDefinition( "part.tunnel.fluid", itemPart.createPart( PartType.P2PTunnelLiquids ) );
|
this.p2PTunnelLiquids = new DamagedItemDefinition( "part.tunnel.fluid", itemPart.createPart( PartType.P2PTunnelLiquids ) );
|
||||||
// this.p2PTunnelEU = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelEU ) );
|
this.p2PTunnelEU = new DamagedItemDefinition( "part.tunnel.eu", itemPart.createPart( PartType.P2PTunnelEU ) );
|
||||||
// this.p2PTunnelRF = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRF ) );
|
// this.p2PTunnelRF = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRF ) );
|
||||||
this.p2PTunnelLight = new DamagedItemDefinition( "part.tunnel.light", itemPart.createPart( PartType.P2PTunnelLight ) );
|
this.p2PTunnelLight = new DamagedItemDefinition( "part.tunnel.light", itemPart.createPart( PartType.P2PTunnelLight ) );
|
||||||
// this.p2PTunnelOpenComputers = new DamagedItemDefinition( itemMultiPart.createPart(
|
// this.p2PTunnelOpenComputers = new DamagedItemDefinition( itemMultiPart.createPart(
|
||||||
@@ -286,13 +286,13 @@ public final class ApiParts implements IParts
|
|||||||
return this.p2PTunnelLiquids;
|
return this.p2PTunnelLiquids;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
@Override
|
||||||
* @Override
|
public IItemDefinition p2PTunnelEU()
|
||||||
* public IItemDefinition p2PTunnelEU()
|
{
|
||||||
* {
|
return this.p2PTunnelEU;
|
||||||
* return this.p2PTunnelEU;
|
}
|
||||||
* }
|
|
||||||
* @Override
|
/* @Override
|
||||||
* public IItemDefinition p2PTunnelRF()
|
* public IItemDefinition p2PTunnelRF()
|
||||||
* {
|
* {
|
||||||
* return this.p2PTunnelRF;
|
* return this.p2PTunnelRF;
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ public enum AEFeature
|
|||||||
// stuff that has no reason for ever being turned off, or that
|
// stuff that has no reason for ever being turned off, or that
|
||||||
// is just flat out required by tons of
|
// is just flat out required by tons of
|
||||||
// important stuff.
|
// important stuff.
|
||||||
Core( null )
|
CORE( "Core", null )
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public boolean isVisible()
|
public boolean isVisible()
|
||||||
@@ -33,124 +33,162 @@ public enum AEFeature
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
CertusQuartzWorldGen( Constants.CATEGORY_WORLD ),
|
CERTUS_QUARTZ_WORLD_GEN( "CertusQuartzWorldGen", Constants.CATEGORY_WORLD ),
|
||||||
MeteoriteWorldGen( Constants.CATEGORY_WORLD ),
|
METEORITE_WORLD_GEN( "MeteoriteWorldGen", Constants.CATEGORY_WORLD ),
|
||||||
DecorativeLights( Constants.CATEGORY_WORLD ),
|
DECORATIVE_LIGHTS( "DecorativeLights", Constants.CATEGORY_WORLD ),
|
||||||
DecorativeQuartzBlocks( Constants.CATEGORY_WORLD ),
|
DECORATIVE_QUARTZ_BLOCKS( "DecorativeQuartzBlocks", Constants.CATEGORY_WORLD ),
|
||||||
SkyStoneChests( Constants.CATEGORY_WORLD ),
|
SKY_STONE_CHESTS( "SkyStoneChests", Constants.CATEGORY_WORLD ),
|
||||||
SpawnPressesInMeteorites( Constants.CATEGORY_WORLD ),
|
SPAWN_PRESSES_IN_METEORITES( "SpawnPressesInMeteorites", Constants.CATEGORY_WORLD ),
|
||||||
GrindStone( Constants.CATEGORY_WORLD ),
|
GRIND_STONE( "GrindStone", Constants.CATEGORY_WORLD ),
|
||||||
Flour( Constants.CATEGORY_WORLD ),
|
FLOUR( "Flour", Constants.CATEGORY_WORLD ),
|
||||||
Inscriber( Constants.CATEGORY_WORLD ),
|
INSCRIBER( "Inscriber", Constants.CATEGORY_WORLD ),
|
||||||
ChestLoot( Constants.CATEGORY_WORLD ),
|
CHARGER( "Charger", Constants.CATEGORY_WORLD ),
|
||||||
VillagerTrading( Constants.CATEGORY_WORLD ),
|
CRYSTAL_GROWTH_ACCELERATOR( "CrystalGrowthAccelerator", Constants.CATEGORY_WORLD ),
|
||||||
TinyTNT( Constants.CATEGORY_WORLD ),
|
CHEST_LOOT( "ChestLoot", Constants.CATEGORY_WORLD ),
|
||||||
|
VILLAGER_TRADING( "VillagerTrading", Constants.CATEGORY_WORLD ),
|
||||||
|
TINY_TNT( "TinyTNT", Constants.CATEGORY_WORLD ),
|
||||||
|
CERTUS_ORE( "CertusOre", Constants.CATEGORY_WORLD ),
|
||||||
|
CHARGED_CERTUS_ORE( "ChargedCertusOre", Constants.CATEGORY_WORLD ),
|
||||||
|
|
||||||
PoweredTools( Constants.CATEGORY_TOOLS_CLASSIFICATIONS ),
|
POWERED_TOOLS( "PoweredTools", Constants.CATEGORY_TOOLS_CLASSIFICATIONS ),
|
||||||
CertusQuartzTools( Constants.CATEGORY_TOOLS_CLASSIFICATIONS ),
|
CERTUS_QUARTZ_TOOLS( "CertusQuartzTools", Constants.CATEGORY_TOOLS_CLASSIFICATIONS ),
|
||||||
NetherQuartzTools( Constants.CATEGORY_TOOLS_CLASSIFICATIONS ),
|
NETHER_QUARTZ_TOOLS( "NetherQuartzTools", Constants.CATEGORY_TOOLS_CLASSIFICATIONS ),
|
||||||
|
|
||||||
QuartzHoe( Constants.CATEGORY_TOOLS ),
|
QUARTZ_HOE( "QuartzHoe", Constants.CATEGORY_TOOLS ),
|
||||||
QuartzSpade( Constants.CATEGORY_TOOLS ),
|
QUARTZ_SPADE( "QuartzSpade", Constants.CATEGORY_TOOLS ),
|
||||||
QuartzSword( Constants.CATEGORY_TOOLS ),
|
QUARTZ_SWORD( "QuartzSword", Constants.CATEGORY_TOOLS ),
|
||||||
QuartzPickaxe( Constants.CATEGORY_TOOLS ),
|
QUARTZ_PICKAXE( "QuartzPickaxe", Constants.CATEGORY_TOOLS ),
|
||||||
QuartzAxe( Constants.CATEGORY_TOOLS ),
|
QUARTZ_AXE( "QuartzAxe", Constants.CATEGORY_TOOLS ),
|
||||||
QuartzKnife( Constants.CATEGORY_TOOLS ),
|
QUARTZ_KNIFE( "QuartzKnife", Constants.CATEGORY_TOOLS ),
|
||||||
QuartzWrench( Constants.CATEGORY_TOOLS ),
|
QUARTZ_WRENCH( "QuartzWrench", Constants.CATEGORY_TOOLS ),
|
||||||
ChargedStaff( Constants.CATEGORY_TOOLS ),
|
CHARGED_STAFF( "ChargedStaff", Constants.CATEGORY_TOOLS ),
|
||||||
EntropyManipulator( Constants.CATEGORY_TOOLS ),
|
ENTROPY_MANIPULATOR( "EntropyManipulator", Constants.CATEGORY_TOOLS ),
|
||||||
MatterCannon( Constants.CATEGORY_TOOLS ),
|
MATTER_CANNON( "MatterCannon", Constants.CATEGORY_TOOLS ),
|
||||||
WirelessAccessTerminal( Constants.CATEGORY_TOOLS ),
|
WIRELESS_ACCESS_TERMINAL( "WirelessAccessTerminal", Constants.CATEGORY_TOOLS ),
|
||||||
ColorApplicator( Constants.CATEGORY_TOOLS ),
|
COLOR_APPLICATOR( "ColorApplicator", Constants.CATEGORY_TOOLS ),
|
||||||
MeteoriteCompass( Constants.CATEGORY_TOOLS ),
|
METEORITE_COMPASS( "MeteoriteCompass", Constants.CATEGORY_TOOLS ),
|
||||||
|
|
||||||
PowerGen( Constants.CATEGORY_NETWORK_FEATURES ),
|
POWER_GEN( "PowerGen", Constants.CATEGORY_NETWORK_FEATURES ),
|
||||||
Security( Constants.CATEGORY_NETWORK_FEATURES ),
|
SECURITY( "Security", Constants.CATEGORY_NETWORK_FEATURES ),
|
||||||
SpatialIO( Constants.CATEGORY_NETWORK_FEATURES ),
|
SPATIAL_IO( "SpatialIO", Constants.CATEGORY_NETWORK_FEATURES ),
|
||||||
QuantumNetworkBridge( Constants.CATEGORY_NETWORK_FEATURES ),
|
QUANTUM_NETWORK_BRIDGE( "QuantumNetworkBridge", Constants.CATEGORY_NETWORK_FEATURES ),
|
||||||
Channels( Constants.CATEGORY_NETWORK_FEATURES ),
|
CHANNELS( "Channels", Constants.CATEGORY_NETWORK_FEATURES ),
|
||||||
|
|
||||||
LevelEmitter( Constants.CATEGORY_NETWORK_BUSES ),
|
INTERFACE( "Interface", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
CraftingTerminal( Constants.CATEGORY_NETWORK_BUSES ),
|
LEVEL_EMITTER( "LevelEmitter", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
StorageMonitor( Constants.CATEGORY_NETWORK_BUSES ),
|
CRAFTING_TERMINAL( "CraftingTerminal", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
P2PTunnel( Constants.CATEGORY_NETWORK_BUSES ),
|
TERMINAL( "Terminal", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
FormationPlane( Constants.CATEGORY_NETWORK_BUSES ),
|
STORAGE_MONITOR( "StorageMonitor", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
AnnihilationPlane( Constants.CATEGORY_NETWORK_BUSES ),
|
P2P_TUNNEL( "P2PTunnel", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
IdentityAnnihilationPlane( Constants.CATEGORY_NETWORK_BUSES ),
|
FORMATION_PLANE( "FormationPlane", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
ImportBus( Constants.CATEGORY_NETWORK_BUSES ),
|
ANNIHILATION_PLANE( "AnnihilationPlane", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
ExportBus( Constants.CATEGORY_NETWORK_BUSES ),
|
IDENTITY_ANNIHILATION_PLANE( "IdentityAnnihilationPlane", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
StorageBus( Constants.CATEGORY_NETWORK_BUSES ),
|
IMPORT_BUS( "ImportBus", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
PartConversionMonitor( Constants.CATEGORY_NETWORK_BUSES ),
|
EXPORT_BUS( "ExportBus", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
STORAGE_BUS( "StorageBus", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
PART_CONVERSION_MONITOR( "PartConversionMonitor", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
TOGGLE_BUS( "ToggleBus", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
PANELS( "Panels", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
QUARTZ_FIBER( "QuartzFiber", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
CABLE_ANCHOR( "CableAnchor", Constants.CATEGORY_NETWORK_BUSES ),
|
||||||
|
|
||||||
PortableCell( Constants.CATEGORY_PORTABLE_CELL ),
|
PORTABLE_CELL( "PortableCell", Constants.CATEGORY_PORTABLE_CELL ),
|
||||||
|
|
||||||
StorageCells( Constants.CATEGORY_STORAGE ),
|
STORAGE_CELLS( "StorageCells", Constants.CATEGORY_STORAGE ),
|
||||||
MEChest( Constants.CATEGORY_STORAGE ),
|
ME_CHEST( "MEChest", Constants.CATEGORY_STORAGE ),
|
||||||
MEDrive( Constants.CATEGORY_STORAGE ),
|
ME_DRIVE( "MEDrive", Constants.CATEGORY_STORAGE ),
|
||||||
IOPort( Constants.CATEGORY_STORAGE ),
|
IO_PORT( "IOPort", Constants.CATEGORY_STORAGE ),
|
||||||
|
CONDENSER( "Condenser", Constants.CATEGORY_STORAGE ),
|
||||||
|
|
||||||
NetworkTool( Constants.CATEGORY_NETWORK_TOOL ),
|
NETWORK_TOOL( "NetworkTool", Constants.CATEGORY_NETWORK_TOOL ),
|
||||||
|
MEMORY_CARD( "MemoryCard", Constants.CATEGORY_NETWORK_TOOL ),
|
||||||
|
|
||||||
DenseEnergyCells( Constants.CATEGORY_HIGHER_CAPACITY ),
|
GLASS_CABLES( "GlassCables", Constants.CATEGORY_CABLES ),
|
||||||
DenseCables( Constants.CATEGORY_HIGHER_CAPACITY ),
|
COVERED_CABLES( "CoveredCables", Constants.CATEGORY_CABLES ),
|
||||||
|
SMART_CABLES( "SmartCables", Constants.CATEGORY_CABLES ),
|
||||||
|
|
||||||
P2PTunnelRF( Constants.CATEGORY_P2P_TUNNELS ),
|
ENERGY_CELLS( "EnergyCells", Constants.CATEGORY_ENERGY ),
|
||||||
P2PTunnelME( Constants.CATEGORY_P2P_TUNNELS ),
|
ENERGY_ACCEPTOR( "EnergyAcceptor", Constants.CATEGORY_ENERGY ),
|
||||||
P2PTunnelItems( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
P2PTunnelRedstone( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
P2PTunnelEU( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
P2PTunnelLiquids( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
P2PTunnelLight( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
P2PTunnelOpenComputers( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
P2PTunnelPressure( Constants.CATEGORY_P2P_TUNNELS ),
|
|
||||||
|
|
||||||
MassCannonBlockDamage( Constants.CATEGORY_BLOCK_FEATURES ),
|
DENSE_ENERGY_CELLS( "DenseEnergyCells", Constants.CATEGORY_HIGHER_CAPACITY ),
|
||||||
TinyTNTBlockDamage( Constants.CATEGORY_BLOCK_FEATURES ),
|
DENSE_CABLES( "DenseCables", Constants.CATEGORY_HIGHER_CAPACITY ),
|
||||||
|
|
||||||
Facades( Constants.CATEGORY_FACADES ),
|
P2P_TUNNEL_RF( "P2PTunnelRF", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_ME( "P2PTunnelME", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_ITEMS( "P2PTunnelItems", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_REDSTONE( "P2PTunnelRedstone", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_EU( "P2PTunnelEU", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_LIQUIDS( "P2PTunnelLiquids", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_LIGHT( "P2PTunnelLight", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_OPEN_COMPUTERS( "P2PTunnelOpenComputers", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
P2P_TUNNEL_PRESSURE( "P2PTunnelPressure", Constants.CATEGORY_P2P_TUNNELS ),
|
||||||
|
|
||||||
UnsupportedDeveloperTools( Constants.CATEGORY_MISC, false ),
|
MASS_CANNON_BLOCK_DAMAGE( "MassCannonBlockDamage", Constants.CATEGORY_BLOCK_FEATURES ),
|
||||||
Creative( Constants.CATEGORY_MISC ),
|
TINY_TNT_BLOCK_DAMAGE( "TinyTNTBlockDamage", Constants.CATEGORY_BLOCK_FEATURES ),
|
||||||
GrinderLogging( Constants.CATEGORY_MISC, false ),
|
|
||||||
Logging( Constants.CATEGORY_MISC ),
|
|
||||||
IntegrationLogging( Constants.CATEGORY_MISC, false ),
|
|
||||||
WebsiteRecipes( Constants.CATEGORY_MISC, false ),
|
|
||||||
LogSecurityAudits( Constants.CATEGORY_MISC, false ),
|
|
||||||
Achievements( Constants.CATEGORY_MISC ),
|
|
||||||
UpdateLogging( Constants.CATEGORY_MISC, false ),
|
|
||||||
PacketLogging( Constants.CATEGORY_MISC, false ),
|
|
||||||
CraftingLog( Constants.CATEGORY_MISC, false ),
|
|
||||||
LightDetector( Constants.CATEGORY_MISC ),
|
|
||||||
DebugLogging( Constants.CATEGORY_MISC, false ),
|
|
||||||
|
|
||||||
EnableFacadeCrafting( Constants.CATEGORY_CRAFTING ),
|
FACADES( "Facades", Constants.CATEGORY_FACADES ),
|
||||||
InWorldSingularity( Constants.CATEGORY_CRAFTING ),
|
|
||||||
InWorldFluix( Constants.CATEGORY_CRAFTING ),
|
|
||||||
InWorldPurification( Constants.CATEGORY_CRAFTING ),
|
|
||||||
InterfaceTerminal( Constants.CATEGORY_CRAFTING ),
|
|
||||||
EnableDisassemblyCrafting( Constants.CATEGORY_CRAFTING ),
|
|
||||||
|
|
||||||
AlphaPass( Constants.CATEGORY_RENDERING ),
|
UNSUPPORTED_DEVELOPER_TOOLS( "UnsupportedDeveloperTools", Constants.CATEGORY_MISC, false ),
|
||||||
PaintBalls( Constants.CATEGORY_TOOLS ),
|
CREATIVE( "Creative", Constants.CATEGORY_MISC ),
|
||||||
|
GRINDER_LOGGING( "GrinderLogging", Constants.CATEGORY_MISC, false ),
|
||||||
|
LOGGING( "Logging", Constants.CATEGORY_MISC ),
|
||||||
|
INTEGRATION_LOGGING( "IntegrationLogging", Constants.CATEGORY_MISC, false ),
|
||||||
|
WEBSITE_RECIPES( "WebsiteRecipes", Constants.CATEGORY_MISC, false ),
|
||||||
|
LOG_SECURITY_AUDITS( "LogSecurityAudits", Constants.CATEGORY_MISC, false ),
|
||||||
|
ACHIEVEMENTS( "Achievements", Constants.CATEGORY_MISC ),
|
||||||
|
UPDATE_LOGGING( "UpdateLogging", Constants.CATEGORY_MISC, false ),
|
||||||
|
PACKET_LOGGING( "PacketLogging", Constants.CATEGORY_MISC, false ),
|
||||||
|
CRAFTING_LOG( "CraftingLog", Constants.CATEGORY_MISC, false ),
|
||||||
|
LIGHT_DETECTOR( "LightDetector", Constants.CATEGORY_MISC ),
|
||||||
|
DEBUG_LOGGING( "DebugLogging", Constants.CATEGORY_MISC, false ),
|
||||||
|
|
||||||
MolecularAssembler( Constants.CATEGORY_CRAFTING_FEATURES ),
|
ENABLE_FACADE_CRAFTING( "EnableFacadeCrafting", Constants.CATEGORY_CRAFTING ),
|
||||||
Patterns( Constants.CATEGORY_CRAFTING_FEATURES ),
|
IN_WORLD_SINGULARITY( "InWorldSingularity", Constants.CATEGORY_CRAFTING ),
|
||||||
CraftingCPU( Constants.CATEGORY_CRAFTING_FEATURES ),
|
IN_WORLD_FLUIX( "InWorldFluix", Constants.CATEGORY_CRAFTING ),
|
||||||
|
IN_WORLD_PURIFICATION( "InWorldPurification", Constants.CATEGORY_CRAFTING ),
|
||||||
|
INTERFACE_TERMINAL( "InterfaceTerminal", Constants.CATEGORY_CRAFTING ),
|
||||||
|
ENABLE_DISASSEMBLY_CRAFTING( "EnableDisassemblyCrafting", Constants.CATEGORY_CRAFTING ),
|
||||||
|
|
||||||
ChunkLoggerTrace( Constants.CATEGORY_COMMANDS, false );
|
ALPHA_PASS( "AlphaPass", Constants.CATEGORY_RENDERING ),
|
||||||
|
PAINT_BALLS( "PaintBalls", Constants.CATEGORY_TOOLS ),
|
||||||
|
|
||||||
public final String category;
|
MOLECULAR_ASSEMBLER( "MolecularAssembler", Constants.CATEGORY_CRAFTING_FEATURES ),
|
||||||
public final boolean defaultValue;
|
PATTERNS( "Patterns", Constants.CATEGORY_CRAFTING_FEATURES ),
|
||||||
|
CRAFTING_CPU( "CraftingCPU", Constants.CATEGORY_CRAFTING_FEATURES ),
|
||||||
|
|
||||||
AEFeature( final String cat )
|
BASIC_CARDS( "BasicCards", Constants.CATEGORY_UPGRADES ),
|
||||||
|
ADVANCED_CARDS( "AdvancedCards", Constants.CATEGORY_UPGRADES ),
|
||||||
|
VIEW_CELL( "ViewCell", Constants.CATEGORY_UPGRADES ),
|
||||||
|
|
||||||
|
PROCESSORS( "Processors", Constants.CATEGORY_MATERIALS ),
|
||||||
|
PRINTED_CIRCUITS( "PrintedCircuits", Constants.CATEGORY_MATERIALS ),
|
||||||
|
PRESSES( "Presses", Constants.CATEGORY_MATERIALS ),
|
||||||
|
CRYSTAL_SEEDS( "CrystalSeeds", Constants.CATEGORY_MATERIALS ),
|
||||||
|
PURE_CRYSTALS( "PureCrystals", Constants.CATEGORY_MATERIALS ),
|
||||||
|
CERTUS( "Certus", Constants.CATEGORY_MATERIALS ),
|
||||||
|
FLUIX( "Fluix", Constants.CATEGORY_MATERIALS ),
|
||||||
|
SILICON( "Silicon", Constants.CATEGORY_MATERIALS ),
|
||||||
|
DUSTS( "Dusts", Constants.CATEGORY_MATERIALS ),
|
||||||
|
NUGGETS( "Nuggets", Constants.CATEGORY_MATERIALS ),
|
||||||
|
MATTER_BALL( "MatterBall", Constants.CATEGORY_MATERIALS ),
|
||||||
|
CORES( "Cores", Constants.CATEGORY_MATERIALS ),
|
||||||
|
|
||||||
|
CHUNK_LOGGER_TRACE( "ChunkLoggerTrace", Constants.CATEGORY_COMMANDS, false );
|
||||||
|
|
||||||
|
private final String key;
|
||||||
|
private final String category;
|
||||||
|
private final boolean enabled;
|
||||||
|
|
||||||
|
AEFeature( final String key, final String cat )
|
||||||
{
|
{
|
||||||
this( cat, true );
|
this( key, cat, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
AEFeature( final String cat, final boolean defaultValue )
|
AEFeature( final String key, final String cat, final boolean enabled )
|
||||||
{
|
{
|
||||||
|
this.key = key;
|
||||||
this.category = cat;
|
this.category = cat;
|
||||||
this.defaultValue = defaultValue;
|
this.enabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -163,6 +201,21 @@ public enum AEFeature
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String key()
|
||||||
|
{
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String category()
|
||||||
|
{
|
||||||
|
return category;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled()
|
||||||
|
{
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
private enum Constants
|
private enum Constants
|
||||||
{
|
{
|
||||||
;
|
;
|
||||||
@@ -177,6 +230,7 @@ public enum AEFeature
|
|||||||
private static final String CATEGORY_BLOCK_FEATURES = "BlockFeatures";
|
private static final String CATEGORY_BLOCK_FEATURES = "BlockFeatures";
|
||||||
private static final String CATEGORY_CRAFTING_FEATURES = "CraftingFeatures";
|
private static final String CATEGORY_CRAFTING_FEATURES = "CraftingFeatures";
|
||||||
private static final String CATEGORY_STORAGE = "Storage";
|
private static final String CATEGORY_STORAGE = "Storage";
|
||||||
|
private static final String CATEGORY_CABLES = "Cables";
|
||||||
private static final String CATEGORY_HIGHER_CAPACITY = "HigherCapacity";
|
private static final String CATEGORY_HIGHER_CAPACITY = "HigherCapacity";
|
||||||
private static final String CATEGORY_NETWORK_FEATURES = "NetworkFeatures";
|
private static final String CATEGORY_NETWORK_FEATURES = "NetworkFeatures";
|
||||||
private static final String CATEGORY_COMMANDS = "Commands";
|
private static final String CATEGORY_COMMANDS = "Commands";
|
||||||
@@ -184,5 +238,8 @@ public enum AEFeature
|
|||||||
private static final String CATEGORY_FACADES = "Facades";
|
private static final String CATEGORY_FACADES = "Facades";
|
||||||
private static final String CATEGORY_NETWORK_TOOL = "NetworkTool";
|
private static final String CATEGORY_NETWORK_TOOL = "NetworkTool";
|
||||||
private static final String CATEGORY_PORTABLE_CELL = "PortableCell";
|
private static final String CATEGORY_PORTABLE_CELL = "PortableCell";
|
||||||
|
private static final String CATEGORY_ENERGY = "Energy";
|
||||||
|
private static final String CATEGORY_UPGRADES = "Upgrades";
|
||||||
|
private static final String CATEGORY_MATERIALS = "Materials";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class ItemDefinition implements IItemDefinition
|
|||||||
@Override
|
@Override
|
||||||
public final boolean isSameAs( final ItemStack comparableStack )
|
public final boolean isSameAs( final ItemStack comparableStack )
|
||||||
{
|
{
|
||||||
return isEnabled() && Platform.isSameItemType( comparableStack, this.maybeStack( 1 ).get() );
|
return isEnabled() && Platform.itemComparisons().isEqualItemType( comparableStack, this.maybeStack( 1 ).get() );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,12 +30,14 @@ import appeng.items.materials.MaterialType;
|
|||||||
public class MaterialStackSrc implements IStackSrc
|
public class MaterialStackSrc implements IStackSrc
|
||||||
{
|
{
|
||||||
private final MaterialType src;
|
private final MaterialType src;
|
||||||
|
private final boolean enabled;
|
||||||
|
|
||||||
public MaterialStackSrc( final MaterialType src )
|
public MaterialStackSrc( final MaterialType src, boolean enabled )
|
||||||
{
|
{
|
||||||
Preconditions.checkNotNull( src );
|
Preconditions.checkNotNull( src );
|
||||||
|
|
||||||
this.src = src;
|
this.src = src;
|
||||||
|
this.enabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,6 +61,6 @@ public class MaterialStackSrc implements IStackSrc
|
|||||||
@Override
|
@Override
|
||||||
public boolean isEnabled()
|
public boolean isEnabled()
|
||||||
{
|
{
|
||||||
return true;
|
return this.enabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public final class GrinderRecipeManager implements IGrinderRegistry, IOreListene
|
|||||||
{
|
{
|
||||||
for( final IGrinderEntry gr : this.recipes )
|
for( final IGrinderEntry gr : this.recipes )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItemPrecise( gr.getInput(), appEngGrinderRecipe.getInput() ) )
|
if( Platform.itemComparisons().isSameItem( gr.getInput(), appEngGrinderRecipe.getInput() ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -151,7 +151,7 @@ public final class GrinderRecipeManager implements IGrinderRegistry, IOreListene
|
|||||||
{
|
{
|
||||||
for( final IGrinderEntry r : this.recipes )
|
for( final IGrinderEntry r : this.recipes )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItem( input, r.getInput() ) )
|
if( Platform.itemComparisons().isEqualItem( input, r.getInput() ) )
|
||||||
{
|
{
|
||||||
this.log( "Recipe for " + input.getUnlocalizedName() + " found " + Platform.getItemDisplayName( r.getOutput() ) );
|
this.log( "Recipe for " + input.getUnlocalizedName() + " found " + Platform.getItemDisplayName( r.getOutput() ) );
|
||||||
return r;
|
return r;
|
||||||
@@ -204,7 +204,7 @@ public final class GrinderRecipeManager implements IGrinderRegistry, IOreListene
|
|||||||
{
|
{
|
||||||
final ItemStack extra = is.copy();
|
final ItemStack extra = is.copy();
|
||||||
extra.stackSize = ratio - 1;
|
extra.stackSize = ratio - 1;
|
||||||
this.addRecipe( item, is, extra, (float) ( AEConfig.instance.oreDoublePercentage / 100.0 ), 8 );
|
this.addRecipe( item, is, extra, (float) ( AEConfig.instance().getOreDoublePercentage() / 100.0 ), 8 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -256,7 +256,7 @@ public final class GrinderRecipeManager implements IGrinderRegistry, IOreListene
|
|||||||
{
|
{
|
||||||
final ItemStack extra = is.copy();
|
final ItemStack extra = is.copy();
|
||||||
extra.stackSize = ratio - 1;
|
extra.stackSize = ratio - 1;
|
||||||
this.addRecipe( d.getKey(), is, extra, (float) ( AEConfig.instance.oreDoublePercentage / 100.0 ), 8 );
|
this.addRecipe( d.getKey(), is, extra, (float) ( AEConfig.instance().getOreDoublePercentage() / 100.0 ), 8 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -279,7 +279,7 @@ public final class GrinderRecipeManager implements IGrinderRegistry, IOreListene
|
|||||||
{
|
{
|
||||||
if( name.startsWith( "ore" ) || name.startsWith( "crystal" ) || name.startsWith( "gem" ) || name.startsWith( "ingot" ) || name.startsWith( "dust" ) )
|
if( name.startsWith( "ore" ) || name.startsWith( "crystal" ) || name.startsWith( "gem" ) || name.startsWith( "ingot" ) || name.startsWith( "dust" ) )
|
||||||
{
|
{
|
||||||
for( final String ore : AEConfig.instance.grinderOres )
|
for( final String ore : AEConfig.instance().getGrinderOres() )
|
||||||
{
|
{
|
||||||
if( name.equals( "ore" + ore ) )
|
if( name.equals( "ore" + ore ) )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class MatterCannonAmmoRegistry implements IOreListener, IMatterCannonAmmo
|
|||||||
{
|
{
|
||||||
for( final ItemStack o : this.DamageModifiers.keySet() )
|
for( final ItemStack o : this.DamageModifiers.keySet() )
|
||||||
{
|
{
|
||||||
if( Platform.isSameItem( o, is ) )
|
if( Platform.itemComparisons().isEqualItem( o, is ) )
|
||||||
{
|
{
|
||||||
return this.DamageModifiers.get( o ).floatValue();
|
return this.DamageModifiers.get( o ).floatValue();
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ public class MatterCannonAmmoRegistry implements IOreListener, IMatterCannonAmmo
|
|||||||
this.considerItem( name, item, "Sodium", 22.9897 );
|
this.considerItem( name, item, "Sodium", 22.9897 );
|
||||||
this.considerItem( name, item, "Magnesium", 24.305 );
|
this.considerItem( name, item, "Magnesium", 24.305 );
|
||||||
this.considerItem( name, item, "Aluminum", 26.9815 );
|
this.considerItem( name, item, "Aluminum", 26.9815 );
|
||||||
this.considerItem( name, item, "Silicon", 28.0855 );
|
this.considerItem( name, item, "SILICON", 28.0855 );
|
||||||
this.considerItem( name, item, "Phosphorus", 30.9738 );
|
this.considerItem( name, item, "Phosphorus", 30.9738 );
|
||||||
this.considerItem( name, item, "Sulfur", 32.065 );
|
this.considerItem( name, item, "Sulfur", 32.065 );
|
||||||
this.considerItem( name, item, "Potassium", 39.0983 );
|
this.considerItem( name, item, "Potassium", 39.0983 );
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ public final class P2PTunnelRegistry implements IP2PTunnelRegistry
|
|||||||
return this.tunnels.get( is );
|
return this.tunnels.get( is );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Platform.isSameItem( is, trigger ) )
|
if( Platform.itemComparisons().isEqualItem( is, trigger ) )
|
||||||
{
|
{
|
||||||
return this.tunnels.get( is );
|
return this.tunnels.get( is );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ public enum TickRates
|
|||||||
|
|
||||||
Inscriber( 1, 1 ),
|
Inscriber( 1, 1 ),
|
||||||
|
|
||||||
|
Charger( 10, 120 ),
|
||||||
|
|
||||||
IOPort( 1, 5 ),
|
IOPort( 1, 5 ),
|
||||||
|
|
||||||
VibrationChamber( 10, 40 ),
|
VibrationChamber( 10, 40 ),
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class AchievementCraftingHandler
|
|||||||
switch( achievement.getType() )
|
switch( achievement.getType() )
|
||||||
{
|
{
|
||||||
case Craft:
|
case Craft:
|
||||||
if( Platform.isSameItemPrecise( achievement.getStack(), event.crafting ) )
|
if( Platform.itemComparisons().isSameItem( achievement.getStack(), event.crafting ) )
|
||||||
{
|
{
|
||||||
achievement.addToPlayer( event.player );
|
achievement.addToPlayer( event.player );
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class AchievementPickupHandler
|
|||||||
|
|
||||||
for( final Achievements achievement : Achievements.values() )
|
for( final Achievements achievement : Achievements.values() )
|
||||||
{
|
{
|
||||||
if( achievement.getType() == AchievementType.Pickup && Platform.isSameItemPrecise( achievement.getStack(), is ) )
|
if( achievement.getType() == AchievementType.Pickup && Platform.itemComparisons().isSameItem( achievement.getStack(), is ) )
|
||||||
{
|
{
|
||||||
achievement.addToPlayer( event.player );
|
achievement.addToPlayer( event.player );
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import appeng.core.features.AEFeature;
|
|||||||
/**
|
/**
|
||||||
* Registers any items a player is picking up or is crafting.
|
* Registers any items a player is picking up or is crafting.
|
||||||
* Registered items are added to the player stats.
|
* Registered items are added to the player stats.
|
||||||
* This will only happen if the {@link AEFeature#Achievements} feature is enabled.
|
* This will only happen if the {@link AEFeature#ACHIEVEMENTS} feature is enabled.
|
||||||
*/
|
*/
|
||||||
public class PlayerStatsRegistration
|
public class PlayerStatsRegistration
|
||||||
{
|
{
|
||||||
@@ -43,7 +43,7 @@ public class PlayerStatsRegistration
|
|||||||
private final EventBus bus;
|
private final EventBus bus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* is true if the {@link appeng.core.features.AEFeature#Achievements} is enabled in the
|
* is true if the {@link appeng.core.features.AEFeature#ACHIEVEMENTS} is enabled in the
|
||||||
*
|
*
|
||||||
* @param config
|
* @param config
|
||||||
*/
|
*/
|
||||||
@@ -55,12 +55,12 @@ public class PlayerStatsRegistration
|
|||||||
*
|
*
|
||||||
* @param bus {@see #bus}
|
* @param bus {@see #bus}
|
||||||
* @param config {@link appeng.core.AEConfig} which is used to determine if the
|
* @param config {@link appeng.core.AEConfig} which is used to determine if the
|
||||||
* {@link appeng.core.features.AEFeature#Achievements} is enabled
|
* {@link appeng.core.features.AEFeature#ACHIEVEMENTS} is enabled
|
||||||
*/
|
*/
|
||||||
public PlayerStatsRegistration( final EventBus bus, final AEConfig config )
|
public PlayerStatsRegistration( final EventBus bus, final AEConfig config )
|
||||||
{
|
{
|
||||||
this.bus = bus;
|
this.bus = bus;
|
||||||
this.isAchievementFeatureEnabled = config.isFeatureEnabled( AEFeature.Achievements );
|
this.isAchievementFeatureEnabled = config.isFeatureEnabled( AEFeature.ACHIEVEMENTS );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -71,9 +71,9 @@ public abstract class AppEngPacket implements Packet
|
|||||||
throw new IllegalArgumentException( "Sorry AE2 made a " + this.p.array().length + " byte packet by accident!" );
|
throw new IllegalArgumentException( "Sorry AE2 made a " + this.p.array().length + " byte packet by accident!" );
|
||||||
}
|
}
|
||||||
|
|
||||||
final FMLProxyPacket pp = new FMLProxyPacket( this.p, NetworkHandler.instance.getChannel() );
|
final FMLProxyPacket pp = new FMLProxyPacket( this.p, NetworkHandler.instance().getChannel() );
|
||||||
|
|
||||||
if( AEConfig.instance.isFeatureEnabled( AEFeature.PacketLogging ) )
|
if( AEConfig.instance().isFeatureEnabled( AEFeature.PACKET_LOGGING ) )
|
||||||
{
|
{
|
||||||
AELog.info( this.getClass().getName() + " : " + pp.payload().readableBytes() );
|
AELog.info( this.getClass().getName() + " : " + pp.payload().readableBytes() );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ import appeng.core.sync.packets.PacketLightning;
|
|||||||
import appeng.core.sync.packets.PacketMEInventoryUpdate;
|
import appeng.core.sync.packets.PacketMEInventoryUpdate;
|
||||||
import appeng.core.sync.packets.PacketMatterCannon;
|
import appeng.core.sync.packets.PacketMatterCannon;
|
||||||
import appeng.core.sync.packets.PacketMockExplosion;
|
import appeng.core.sync.packets.PacketMockExplosion;
|
||||||
import appeng.core.sync.packets.PacketMultiPart;
|
|
||||||
import appeng.core.sync.packets.PacketJEIRecipe;
|
import appeng.core.sync.packets.PacketJEIRecipe;
|
||||||
import appeng.core.sync.packets.PacketNewStorageDimension;
|
import appeng.core.sync.packets.PacketNewStorageDimension;
|
||||||
import appeng.core.sync.packets.PacketPaintedEntity;
|
import appeng.core.sync.packets.PacketPaintedEntity;
|
||||||
@@ -68,8 +67,6 @@ public class AppEngPacketHandlerBase
|
|||||||
|
|
||||||
PACKET_CONFIG_BUTTON( PacketConfigButton.class ),
|
PACKET_CONFIG_BUTTON( PacketConfigButton.class ),
|
||||||
|
|
||||||
PACKET_MULTIPART( PacketMultiPart.class ),
|
|
||||||
|
|
||||||
PACKET_PART_PLACEMENT( PacketPartPlacement.class ),
|
PACKET_PART_PLACEMENT( PacketPartPlacement.class ),
|
||||||
|
|
||||||
PACKET_LIGHTNING( PacketLightning.class ),
|
PACKET_LIGHTNING( PacketLightning.class ),
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import appeng.core.worlddata.WorldData;
|
|||||||
|
|
||||||
public class NetworkHandler
|
public class NetworkHandler
|
||||||
{
|
{
|
||||||
public static NetworkHandler instance;
|
private static NetworkHandler instance;
|
||||||
|
|
||||||
private final FMLEventChannel ec;
|
private final FMLEventChannel ec;
|
||||||
private final String myChannelName;
|
private final String myChannelName;
|
||||||
@@ -55,6 +55,16 @@ public class NetworkHandler
|
|||||||
this.serveHandler = this.createServerSide();
|
this.serveHandler = this.createServerSide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void init( final String channelName )
|
||||||
|
{
|
||||||
|
instance = new NetworkHandler( channelName );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static NetworkHandler instance()
|
||||||
|
{
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
private IPacketHandler createClientSide()
|
private IPacketHandler createClientSide()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class PacketCompassRequest extends AppEngPacket implements ICompassCallba
|
|||||||
@Override
|
@Override
|
||||||
public void calculatedDirection( final boolean hasResult, final boolean spin, final double radians, final double dist )
|
public void calculatedDirection( final boolean hasResult, final boolean spin, final double radians, final double dist )
|
||||||
{
|
{
|
||||||
NetworkHandler.instance.sendTo( new PacketCompassResponse( this, hasResult, spin, radians ), (EntityPlayerMP) this.talkBackTo );
|
NetworkHandler.instance().sendTo( new PacketCompassResponse( this, hasResult, spin, radians ), (EntityPlayerMP) this.talkBackTo );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ import appeng.items.storage.ItemViewCell;
|
|||||||
import appeng.util.InventoryAdaptor;
|
import appeng.util.InventoryAdaptor;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
import appeng.util.item.AEItemStack;
|
import appeng.util.item.AEItemStack;
|
||||||
import appeng.util.prioitylist.IPartitionList;
|
import appeng.util.prioritylist.IPartitionList;
|
||||||
|
|
||||||
|
|
||||||
public class PacketJEIRecipe extends AppEngPacket
|
public class PacketJEIRecipe extends AppEngPacket
|
||||||
@@ -167,7 +167,7 @@ public class PacketJEIRecipe extends AppEngPacket
|
|||||||
final ItemStack newItemStack = r.matches( testInv, pmp.worldObj ) ? r.getCraftingResult( testInv ) : null;
|
final ItemStack newItemStack = r.matches( testInv, pmp.worldObj ) ? r.getCraftingResult( testInv ) : null;
|
||||||
testInv.setInventorySlotContents( x, patternItem );
|
testInv.setInventorySlotContents( x, patternItem );
|
||||||
|
|
||||||
if( newItemStack == null || !Platform.isSameItemPrecise( newItemStack, is ) )
|
if( newItemStack == null || !Platform.itemComparisons().isSameItem( newItemStack, is ) )
|
||||||
{
|
{
|
||||||
final IAEItemStack in = AEItemStack.create( currentItem );
|
final IAEItemStack in = AEItemStack.create( currentItem );
|
||||||
if( in != null )
|
if( in != null )
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class PacketLightning extends AppEngPacket
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if( Platform.isClient() && AEConfig.instance.enableEffects )
|
if( Platform.isClient() && AEConfig.instance().isEnableEffects() )
|
||||||
{
|
{
|
||||||
final LightningFX fx = new LightningFX( ClientHelper.proxy.getWorld(), this.x, this.y, this.z, 0.0f, 0.0f, 0.0f );
|
final LightningFX fx = new LightningFX( ClientHelper.proxy.getWorld(), this.x, this.y, this.z, 0.0f, 0.0f, 0.0f );
|
||||||
Minecraft.getMinecraft().effectRenderer.addEffect( fx );
|
Minecraft.getMinecraft().effectRenderer.addEffect( fx );
|
||||||
|
|||||||
@@ -1,64 +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.core.sync.packets;
|
|
||||||
|
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import io.netty.buffer.Unpooled;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
|
||||||
|
|
||||||
import appeng.core.sync.AppEngPacket;
|
|
||||||
import appeng.core.sync.network.INetworkInfo;
|
|
||||||
import appeng.integration.IntegrationRegistry;
|
|
||||||
import appeng.integration.IntegrationType;
|
|
||||||
import appeng.integration.abstraction.IFMP;
|
|
||||||
|
|
||||||
|
|
||||||
public class PacketMultiPart extends AppEngPacket
|
|
||||||
{
|
|
||||||
|
|
||||||
// automatic.
|
|
||||||
public PacketMultiPart( final ByteBuf stream )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// api
|
|
||||||
public PacketMultiPart()
|
|
||||||
{
|
|
||||||
final ByteBuf data = Unpooled.buffer();
|
|
||||||
|
|
||||||
data.writeInt( this.getPacketID() );
|
|
||||||
|
|
||||||
this.configureWrite( data );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void serverPacketData( final INetworkInfo manager, final AppEngPacket packet, final EntityPlayer player )
|
|
||||||
{
|
|
||||||
final IFMP fmp = (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP );
|
|
||||||
if( fmp != null )
|
|
||||||
{
|
|
||||||
final EntityPlayerMP sender = (EntityPlayerMP) player;
|
|
||||||
MinecraftForge.EVENT_BUS.post( fmp.newFMPPacketEvent( sender ) ); // when received it just posts this event.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user