Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- перейти к содержанию
- Почему GitHub?
- предприятие
- Проводить исследования
- базарная площадь
- ценообразование
- Search
- Войти
- Зарегистрироваться
- brandon3055
- /
- Draconic -Evolution
- 3713589
- Код Выпуски 25 Потяните запросы 2 Проекты 0 Wiki Безопасность Insights
- Присоединяйтесь к GitHub сегодня
- GitHub является домом для более чем 40 миллионов разработчиков, работающих вместе для размещения и анализа кода, управления проектами и совместной разработки программного обеспечения.
- Драконий-Evolution / SRC / главная / Java / COM / brandon3055 / draconicevolution / общие / tileentities / multiblocktiles /TileEnergyStorageCore.java
- @ brandon3055 brandon3055 переформатировал ВСЕ ВЕЩИ!
- 8395a5c
- on 13 Jun 2016
- @ brandon3055@OneEyeMaker
- 781 строка (708 слок) 38,2 КБ
- пакет com.brandon3055.draconicevolution.common.tileentities.multiblocktiles ;
- import com.brandon3055.draconicevolution.common.ModBlocks ;
- import com.brandon3055.draconicevolution.common.blocks.multiblock.MultiblockHelper.TileLocation ;
- import com.brandon3055.draconicevolution.common.handler.BalanceConfigHandler ;
- import com.brandon3055.draconicevolution.common.lib.References ;
- import com.brandon3055.draconicevolution.common.tileentities.TileObjectSync ;
- import com.brandon3055.draconicevolution.common.tileentities.TileParticleGenerator ;
- import com.brandon3055.draconicevolution.common.utills.LogHelper ;
- import cpw.mods.fml.common.network.NetworkRegistry ;
- импорт net.minecraft.init.Blocks ;
- import net.minecraft.nbt.NBTTagCompound ;
- импорт net.minecraft.network.NetworkManager ;
- импорт net.minecraft.network.Packet ;
- import net.minecraft.network.play.server.S35PacketUpdateTileEntity ;
- import net.minecraft.util.AxisAlignedBB ;
- / **
- * Создано Брэндоном 25/07/2014.
- * /
- открытый класс TileEnergyStorageCore extends TileObjectSync {
- защищенный TileLocation [] стабилизаторы = новый TileLocation [ 4 ];
- защищенный INT уровень = 0 ;
- защищенное логическое значение онлайн = false ;
- public float modelRotation = 0 ;
- частная длинная энергия = 0 ;
- собственная длинная емкость = 0 ;
- private long lastTickCapacity = 0 ;
- private int tick = 0 ;
- public TileEnergyStorageCore () {
- for ( int i = 0 ; i < стабилизаторы . length; i ++ ) {
- стабилизаторы [i] = new TileLocation ();
- }
- }
- @Override
- public void updateEntity () {
- // energy = 200000000;
- если ( ! онлайн) возврат ;
- if (worldObj . isRemote) modelRotation + = 0.5 ;
- if ( ! worldObj . isRemote) detectAndRendChanges ();
- отметьте ++ ;
- }
- / **
- * ###################### Многоблочные методы #######################
- * /
- public boolean tryActivate () {
- if ( ! findStabalyzers ()) возвращает false ;
- if ( ! setTier ( false )) return false ;
- if ( ! testOrActivateStructureIfValid ( false , false )) return false ;
- онлайн = правда ;
- if ( ! testOrActivateStructureIfValid ( false , true )) {
- онлайн = ложь ;
- deactivateStabilizers ();
- вернуть ложь ;
- }
- activateStabilizers ();
- worldObj . markBlockForUpdate (xCoord, yCoord, zCoord);
- вернуть истину ;
- }
- public boolean creativeActivate () {
- if ( ! findStabalyzers ()) возвращает false ;
- if ( ! setTier ( false )) return false ;
- if ( ! testOrActivateStructureIfValid ( true , false )) return false ;
- онлайн = правда ;
- if ( ! testOrActivateStructureIfValid ( false , true )) {
- онлайн = ложь ;
- deactivateStabilizers ();
- вернуть ложь ;
- }
- activateStabilizers ();
- worldObj . markBlockForUpdate (xCoord, yCoord, zCoord);
- вернуть истину ;
- }
- public boolean isStructureStillValid ( логическое обновление ) {
- if ( ! checkStabilizers ()) online = false ;
- if ( ! testOrActivateStructureIfValid ( false , false )) online = false ;
- if ( ! areStabilizersActive ()) online = false ;
- worldObj . markBlockForUpdate (xCoord, yCoord, zCoord);
- if ( ! online) deactivateStabilizers ();
- if (update && ! online) reIntegrate ();
- // if (update &&! online && worldObj.getTileEntity (xCoord, yCoord + 1, zCoord)! = null && worldObj.getTileEntity (xCoord, yCoord + 1, zCoord) экземпляр класса TileInvisibleMultiblock) (TileInvisileObity_jb) yCoord + 1, zCoord)). isStructureStillValid ();
- вернуться онлайн;
- }
- private void reIntegrate () {
- for ( int x = xCoord - 1 ; x <= xCoord + 1 ; x ++ ) {
- for ( int y = yCoord - 1 ; y <= yCoord + 1 ; y ++ ) {
- for ( int z = zCoord - 1 ; z <= zCoord + 1 ; z ++ ) {
- if (worldObj . getBlock (x, y, z) == ModBlocks . invisibleMultiblock) {
- if (worldObj . getBlockMetadata (x, y, z) == 0 ) {
- worldObj . setBlock (x, y, z, ModBlocks . draconiumBlock);
- } else if (worldObj . getBlockMetadata (x, y, z) == 1 ) {
- worldObj . setBlock (x, y, z, BalanceConfigHandler . energyStorageStructureBlock, BalanceConfigHandler . energyStorageStructureBlockMetadata, 3 );
- }
- }
- }
- }
- }
- }
- частное логическое findStabalyzers () {
- логический флаг = true ;
- for ( int x = xCoord; x <= xCoord + 11 ; x ++ ) {
- if (worldObj . getBlock (x, yCoord, zCoord) == ModBlocks . частицыGenerator ) {
- if (worldObj . getBlockMetadata (x, yCoord, zCoord) == 1 ) {
- флаг = ложь ;
- перерыв ;
- }
- стабилизаторы [ 0 ] = new TileLocation (x, yCoord, zCoord);
- перерыв ;
- } else if (x == xCoord + 11 ) {
- флаг = ложь ;
- }
- }
- for ( int x = xCoord; x > = xCoord - 11 ; x - ) {
- if (worldObj . getBlock (x, yCoord, zCoord) == ModBlocks . частицыGenerator ) {
- if (worldObj . getBlockMetadata (x, yCoord, zCoord) == 1 ) {
- флаг = ложь ;
- перерыв ;
- }
- стабилизаторы [ 1 ] = new TileLocation (x, yCoord, zCoord);
- перерыв ;
- } else if (x == xCoord - 11 ) {
- флаг = ложь ;
- }
- }
- for ( int z = zCoord; z <= zCoord + 11 ; z ++ ) {
- if (worldObj . getBlock (xCoord, yCoord, z) == ModBlocks . частицыGenerator ) {
- if (worldObj . getBlockMetadata (xCoord, yCoord, z) == 1 ) {
- флаг = ложь ;
- перерыв ;
- }
- стабилизаторы [ 2 ] = new TileLocation (xCoord, yCoord, z);
- перерыв ;
- } else if (z == zCoord + 11 ) {
- флаг = ложь ;
- }
- }
- for ( int z = zCoord; z > = zCoord - 11 ; z - ) {
- if (worldObj . getBlock (xCoord, yCoord, z) == ModBlocks . частицыGenerator ) {
- if (worldObj . getBlockMetadata (xCoord, yCoord, z) == 1 ) {
- флаг = ложь ;
- перерыв ;
- }
- стабилизаторы [ 3 ] = new TileLocation (xCoord, yCoord, z);
- перерыв ;
- } else if (z == zCoord - 11 ) {
- флаг = ложь ;
- }
- }
- флаг возврата ;
- }
- приватный логический setTier ( логическая сила ) {
- if (force) возвращает true ;
- int xPos = 0 ;
- int xNeg = 0 ;
- int yPos = 0 ;
- int yNeg = 0 ;
- int zPos = 0 ;
- int zNeg = 0 ;
- int range = 5 ;
- for ( int x = 0 ; x <= range; x ++ ) {
- if (testForOrActivateDraconium (xCoord + x, yCoord, zCoord, false , false )) {
- xPos = x;
- перерыв ;
- }
- }
- for ( int x = 0 ; x <= range; x ++ ) {
- if (testForOrActivateDraconium (xCoord - x, yCoord, zCoord, false , false )) {
- xNeg = x;
- перерыв ;
- }
- }
- for ( int y = 0 ; y <= range; y ++ ) {
- if (testForOrActivateDraconium (xCoord, yCoord + y, zCoord, false , false )) {
- yPos = y;
- перерыв ;
- }
- }
- for ( int y = 0 ; y <= range; y ++ ) {
- if (testForOrActivateDraconium (xCoord, yCoord - y, zCoord, false , false )) {
- yNeg = y;
- перерыв ;
- }
- }
- для ( int z = 0 ; z <= range; z ++ ) {
- if (testForOrActivateDraconium (xCoord, yCoord, zCoord + z, false , false )) {
- zPos = z;
- перерыв ;
- }
- }
- для ( int z = 0 ; z <= range; z ++ ) {
- if (testForOrActivateDraconium (xCoord, yCoord, zCoord - z, false , false )) {
- zNeg = z;
- перерыв ;
- }
- }
- if (zNeg ! = zPos || zNeg ! = yNeg || zNeg ! = yPos || zNeg ! = xNeg || zNeg ! = xPos) return false ;
- уровень = xPos;
- if (уровень > 1 ) уровень ++ ;
- if (tier == 1 ) {
- if (testForOrActivateDraconium (xCoord + 1 , yCoord + 1 , zCoord, false , false )) tier = 2 ;
- }
- вернуть истину ;
- }
- приватный логический тестOrActivateStructureIfValid ( логические setBlocks , логические активировать ) {
- переключатель (уровень) {
- случай 0 :
- if ( ! testOrActivateRect ( 1 , 1 , 1 , « air » , setBlocks, активировать)) return false ;
- перерыв ;
- случай 1 :
- если ( ! testForOrActivateDraconium (xCoord + 1 , yCoord, zCoord, setBlocks, активировать) || ! testForOrActivateDraconium (xCoord - 1 , yCoord, zCoord, setBlocks, активировать) || ! testForOrActivateDraconium (xCoord, yCoord + 1 , zCoord, setBlocks, активизируют ) || ! testForOrActivateDraconium (xCoord, yCoord - 1 , zCoord, setBlocks, активировать) || ! testForOrActivateDraconium (xCoord, yCoord, zCoord + 1 , setBlocks, активировать) || !testForOrActivateDraconium (xCoord, yCoord, zCoord - 1 , setBlocks, активировать))
- вернуть ложь ;
- if ( ! isReplacable (xCoord + 1 , yCoord + 1 , zCoord, setBlocks) || ! isReplacable (xCoord, yCoord + 1 , zCoord + 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord + 1 , zCoord, 1 , zCoord ) || ! isReplacable (xCoord, yCoord + 1 , zCoord - 1 , setBlocks) || ! isReplacable (xCoord + 1 , yCoord - 1, zCoord, setBlocks) || ! isReplacable (xCoord, yCoord - 1 , zCoord + 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord - 1 , zCoord, setBlocks) || ! isReplacable (xCoord, yCoord - 1 , zCoord - 1 , setBlocks) || ! isReplacable (xCoord + 1 , yCoord, zCoord + 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord, zCoord- 1 , setBlocks) || ! isReplacable (xCoord + 1 , yCoord, zCoord - 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord, zCoord + 1 , setBlocks))
- вернуть ложь ;
- if ( ! isReplacable (xCoord + 1 , yCoord + 1 , zCoord + 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord + 1 , zCoord - 1 , setBlocks) || ! isReplacable (xCoord + 1 , yCoord + 1 , zCoord - 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord + 1 , zCoord + 1, setBlocks) || ! isReplacable (xCoord + 1 , yCoord - 1 , zCoord + 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord - 1 , zCoord - 1 , setBlocks) || ! isReplacable (xCoord + 1 , yCoord - 1 , zCoord - 1 , setBlocks) || ! isReplacable (xCoord - 1 , yCoord - 1 , zCoord + 1 , setBlocks))
- вернуть ложь ;
- перерыв ;
- случай 2 :
- if ( ! testOrActivateRect ( 1 , 1 , 1 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- перерыв ;
- случай 3 :
- if ( ! testOrActivateSides ( 1 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateRect ( 1 , 1 , 1 , « красный камень » , setBlocks, активировать)) return false ;
- перерыв ;
- дело 4 :
- if ( ! testOrActivateSides ( 2 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateRect ( 2 , 1 , 1 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRect ( 1 , 2 , 1 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRect ( 1 , 1 , 2 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRings ( 2 , 2 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- перерыв ;
- дело 5 :
- if ( ! testOrActivateSides ( 3 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateSides ( 2 , " redstone " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateRect ( 2 , 2 , 2 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRings ( 2 , 3 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- перерыв ;
- дело 6 :
- if ( ! testOrActivateSides ( 4 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateSides ( 3 , " redstone " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateRect ( 3 , 2 , 2 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRect ( 2 , 3 , 2 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRect ( 2 , 2 , 3 , « красный камень » , setBlocks, активировать)) return false ;
- if ( ! testOrActivateRings ( 2 , 4 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- if ( ! testOrActivateRings ( 3 , 3 , " draconiumBlock " , setBlocks, активировать)) возвращает false ;
- перерыв ;
- }
- вернуть истину ;
- }
- приватный логический testOrActivateRect ( int xDim , int yDim , int zDim , блок String , логический набор , логическая активация ) {
- for ( int x = xCoord - xDim; x <= xCoord + xDim; x ++ ) {
- for ( int y = yCoord - yDim; y <= yCoord + yDim; y ++ ) {
- for ( int z = zCoord - zDim; z <= zCoord + zDim; z ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && y == yCoord && z == zCoord) && ! isReplacable (x, y, z, set)) return false ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateRedstone (x, y, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateDraconium (x, y, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- вернуть истину ;
- }
- приватный логический testOrActivateRings ( размер int , int dist , блок String , логический набор , логическая активация ) {
- for ( int y = yCoord - размер; y <= yCoord + размер; y ++ ) {
- for ( int z = zCoord - размер; z <= zCoord + размер; z ++ ) {
- if (y == yCoord - размер || y == yCoord + размер || z == zCoord - размер || z == zCoord + размер) {
- if (block . equals ( " air " )) {
- if ( ! (xCoord + dist == xCoord && y == yCoord && z == zCoord) && ! isReplacable (xCoord + dist, y, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (xCoord + dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateRedstone (xCoord + dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (xCoord + dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateDraconium (xCoord + dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- for ( int y = yCoord - размер; y <= yCoord + размер; y ++ ) {
- for ( int z = zCoord - размер; z <= zCoord + размер; z ++ ) {
- if (y == yCoord - размер || y == yCoord + размер || z == zCoord - размер || z == zCoord + размер) {
- if (block . equals ( " air " )) {
- if ( ! (xCoord - dist == xCoord && y == yCoord && z == zCoord) && ! isReplacable (xCoord - dist, y, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (xCoord - dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateRedstone (xCoord - dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (xCoord - dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateDraconium (xCoord - dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- for ( int x = xCoord - размер; x <= xCoord + размер; x ++ ) {
- for ( int z = zCoord - размер; z <= zCoord + размер; z ++ ) {
- if (x == xCoord - размер || x == xCoord + размер || z == zCoord - размер || z == zCoord + размер) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && yCoord + dist == yCoord && z == zCoord) && ! isReplacable (x, yCoord + dist, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && yCoord + dist == yCoord && z == zCoord) && ! testForOrActivateRedstone (x, yCoord + dist, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && yCoord + dist == yCoord && z == zCoord) && ! testForOrActivateDraconium (x, yCoord + dist, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- for ( int x = xCoord - размер; x <= xCoord + размер; x ++ ) {
- for ( int z = zCoord - размер; z <= zCoord + размер; z ++ ) {
- if (x == xCoord - размер || x == xCoord + размер || z == zCoord - размер || z == zCoord + размер) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && yCoord - dist == yCoord && z == zCoord) && ! isReplacable (x, yCoord - dist, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && yCoord - dist == yCoord && z == zCoord) && ! testForOrActivateRedstone (x, yCoord - dist, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && yCoord - dist == yCoord && z == zCoord) && ! testForOrActivateDraconium (x, yCoord - dist, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- for ( int y = yCoord - размер; y <= yCoord + размер; y ++ ) {
- for ( int x = xCoord - размер; x <= xCoord + размер; x ++ ) {
- if (y == yCoord - размер || y == yCoord + размер || x == xCoord - размер || x == xCoord + размер) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord + dist == zCoord) && ! isReplacable (x, y, zCoord + dist, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord + dist == zCoord) && ! testForOrActivateRedstone (x, y, zCoord + dist, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord + dist == zCoord) && ! testForOrActivateDraconium (x, y, zCoord + dist, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- for ( int y = yCoord - размер; y <= yCoord + размер; y ++ ) {
- for ( int x = xCoord - размер; x <= xCoord + размер; x ++ ) {
- if (y == yCoord - размер || y == yCoord + размер || x == xCoord - размер || x == xCoord + размер) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord - dist == zCoord) && ! isReplacable (x, y, zCoord - dist, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord - dist == zCoord) && ! testForOrActivateRedstone (x, y, zCoord - dist, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord - dist == zCoord) && ! testForOrActivateDraconium (x, y, zCoord - dist, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- }
- вернуть истину ;
- }
- приватный логический testOrActivateSides ( int dist , строковый блок , логический набор , логический активатор ) {
- dist ++ ;
- for ( int y = yCoord - 1 ; y <= yCoord + 1 ; y ++ ) {
- for ( int z = zCoord - 1 ; z <= zCoord + 1 ; z ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (xCoord + dist == xCoord && y == yCoord && z == zCoord) && ! isReplacable (xCoord + dist, y, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (xCoord + dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateRedstone (xCoord + dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (xCoord + dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateDraconium (xCoord + dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- for ( int y = yCoord - 1 ; y <= yCoord + 1 ; y ++ ) {
- for ( int z = zCoord - 1 ; z <= zCoord + 1 ; z ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (xCoord - dist == xCoord && y == yCoord && z == zCoord) && ! isReplacable (xCoord - dist, y, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (xCoord - dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateRedstone (xCoord - dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (xCoord - dist == xCoord && y == yCoord && z == zCoord) && ! testForOrActivateDraconium (xCoord - dist, y, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- for ( int x = xCoord - 1 ; x <= xCoord + 1 ; x ++ ) {
- for ( int z = zCoord - 1 ; z <= zCoord + 1 ; z ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && yCoord + dist == yCoord && z == zCoord) && ! isReplacable (x, yCoord + dist, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && yCoord + dist == yCoord && z == zCoord) && ! testForOrActivateRedstone (x, yCoord + dist, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && yCoord + dist == yCoord && z == zCoord) && ! testForOrActivateDraconium (x, yCoord + dist, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- for ( int x = xCoord - 1 ; x <= xCoord + 1 ; x ++ ) {
- for ( int z = zCoord - 1 ; z <= zCoord + 1 ; z ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && yCoord - dist == yCoord && z == zCoord) && ! isReplacable (x, yCoord - dist, z, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && yCoord - dist == yCoord && z == zCoord) && ! testForOrActivateRedstone (x, yCoord - dist, z, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && yCoord - dist == yCoord && z == zCoord) && ! testForOrActivateDraconium (x, yCoord - dist, z, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- for ( int y = yCoord - 1 ; y <= yCoord + 1 ; y ++ ) {
- for ( int x = xCoord - 1 ; x <= xCoord + 1 ; x ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord + dist == zCoord) && ! isReplacable (x, y, zCoord + dist, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord + dist == zCoord) && ! testForOrActivateRedstone (x, y, zCoord + dist, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord + dist == zCoord) && ! testForOrActivateDraconium (x, y, zCoord + dist, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- for ( int y = yCoord - 1 ; y <= yCoord + 1 ; y ++ ) {
- for ( int x = xCoord - 1 ; x <= xCoord + 1 ; x ++ ) {
- if (block . equals ( " air " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord - dist == zCoord) && ! isReplacable (x, y, zCoord - dist, set))
- вернуть ложь ;
- } else if (block . equals ( " redstone " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord - dist == zCoord) && ! testForOrActivateRedstone (x, y, zCoord - dist, установить, активировать))
- вернуть ложь ;
- } else if (block . equals ( " draconiumBlock " )) {
- if ( ! (x == xCoord && y == yCoord && zCoord - dist == zCoord) && ! testForOrActivateDraconium (x, y, zCoord - dist, установить, активировать))
- вернуть ложь ;
- } else if ( ! block . equals ( " draconiumBlock " ) && ! block . equals ( " redstone " ) && ! block . equals ( " air " )) {
- LogHelper . ошибка ( « Недопустимая строка в коде многоблочной структуры !!! » );
- вернуть ложь ;
- }
- }
- }
- вернуть истину ;
- }
- приватный логический тестForOrActivateDraconium ( int x , int y , int z , логический набор , логическая активация ) {
- если ( ! активировать) {
- if (set) {
- worldObj . setBlock (x, y, z, ModBlocks . draconiumBlock);
- вернуть истину ;
- } еще
- возвращение worldObj . getBlock (x, y, z) == ModBlocks . дракониевый блок || (worldObj . getBlock (x, y, z) == ModBlocks . invisibleMultiblock && worldObj . getBlockMetadata (x, y, z) == 0 );
- } еще {
- вернуть ActivDraconium (x, y, z);
- }
- }
- приватный логический testForOrActivateRedstone ( int x , int y , int z , логический набор , логическая активация ) {
- если ( ! активировать) {
- if (set) {
- worldObj . setBlock (x, y, z, BalanceConfigHandler . energyStorageStructureBlock, BalanceConfigHandler . energyStorageStructureBlockMetadata, 3 );
- вернуть истину ;
- } еще {
- return (worldObj . getBlock (x, y, z) == BalanceConfigHandler . energyStorageStructureBlock && worldObj . getBlockMetadata (x, y, z) == BalanceConfigHandler . energyStorageStructureBlockMetadata) || (worldObj . getBlock (x, y, z) == ModBlocks . invisibleMultiblock && worldObj . getBlockMetadata (x, y, z) == 1 );
- }
- } еще {
- вернуть activRedstone (x, y, z);
- }
- }
- частное логическое значение activDraconium ( int x , int y , int z ) {
- if (testForOrActivateDraconium (x, y, z, false , false )) {
- worldObj . setBlock (x, y, z, ModBlocks . invisibleMultiblock, 0 , 2 );
- TileInvisibleMultiblock плитка = (worldObj . GetTileEntity (х, у, г) ! = NULL && worldObj . GetTileEntity (х, у, г) InstanceOf TileInvisibleMultiblock ) ? ( TileInvisibleMultiblock ) worldObj . getTileEntity (x, y, z) : null ;
- if (tile ! = null ) {
- плитка . master = new TileLocation (xCoord, yCoord, zCoord);
- }
- вернуть истину ;
- }
- LogHelper . ошибка ( « Не удалось активировать структуру (activDraconium) » );
- вернуть ложь ;
- }
- закрытое логическое значение activRedstone ( int x , int y , int z ) {
- if (testForOrActivateRedstone (x, y, z, false , false )) {
- worldObj . setBlock (x, y, z, ModBlocks . invisibleMultiblock, 1 , 2 );
- TileInvisibleMultiblock плитка = (worldObj . GetTileEntity (х, у, г) ! = NULL && worldObj . GetTileEntity (х, у, г) InstanceOf TileInvisibleMultiblock ) ? ( TileInvisibleMultiblock ) worldObj . getTileEntity (x, y, z) : null ;
- if (tile ! = null ) {
- плитка . master = new TileLocation (xCoord, yCoord, zCoord);
- }
- вернуть истину ;
- }
- LogHelper . ошибка ( « Не удалось активировать структуру (activRedstone) » );
- вернуть ложь ;
- }
- приватный логический isReplacable ( int x , int y , int z , логический набор ) {
- if (set) {
- worldObj . setBlock (x, y, z, Blocks . air);
- вернуть истину ;
- } иначе верните worldObj . getBlock (x, y, z) . isReplaceable (worldObj, x, y, z) || worldObj . isAirBlock (x, y, z);
- }
- public boolean isOnline () {
- вернуться онлайн;
- }
- private void activStabilizers () {
- for ( int i = 0 ; i < стабилизаторы . length; i ++ ) {
- if (стабилизаторы [i] == ноль ) {
- LogHelper . ошибка ( " activStabilizers stabalizers [ " + i + " ] == null !!! " );
- возврат ;
- }
- TileParticleGenerator плитка = (worldObj . GetTileEntity (стабилизаторы [я] . GetXCoord (), стабилизаторы [I] . GetYCoord (), стабилизаторы [I] . GetZCoord ()) ! = NULL && worldObj . GetTileEntity (стабилизаторы [я] . GetXCoord ( ), стабилизаторы [i] . getYCoord (), стабилизаторы [i] . getZCoord ()) экземпляр TileParticleGenerator ) ? ( TileParticleGenerator ) worldObj . getTileEntity (стабилизаторы [i] . getXCoord (), стабилизаторы [i] .getYCoord (), стабилизаторы [i] . getZCoord ()) : null ;
- if (tile == null ) {
- LogHelper . ошибка ( « Отсутствует объект плитки (Генератор частиц) » );
- возврат ;
- }
- плитка . stabalizerMode = true ;
- плитка . setMaster ( новый TileLocation (xCoord, yCoord, zCoord));
- worldObj . setBlockMetadataWithNotify (стабилизаторы [i] . getXCoord (), стабилизаторы [i] . getYCoord (), стабилизаторы [i] . getZCoord (), 1 , 2 );
- }
- initializeCapacity ();
- }
- private void initializeCapacity () {
- длинная емкость = 0 ;
- переключатель (уровень) {
- случай 0 :
- емкость = BalanceConfigHandler . energyStorageTier1Storage;
- перерыв ;
- случай 1 :
- емкость = BalanceConfigHandler . energyStorageTier2Storage;
- перерыв ;
- случай 2 :
- емкость = BalanceConfigHandler . energyStorageTier3Storage;
- перерыв ;
- случай 3 :
- емкость = BalanceConfigHandler . energyStorageTier4Storage;
- перерыв ;
- дело 4 :
- емкость = BalanceConfigHandler . energyStorageTier5Storage;
- перерыв ;
- дело 5 :
- емкость = BalanceConfigHandler . energyStorageTier6Storage;
- перерыв ;
- дело 6 :
- емкость = BalanceConfigHandler . energyStorageTier7Storage;
- перерыв ;
- }
- это . емкость = емкость;
- если (энергия > емкость) энергия = емкость;
- }
- public void deactivateStabilizers () {
- for ( int i = 0 ; i < стабилизаторы . length; i ++ ) {
- if (стабилизаторы [i] == ноль ) {
- LogHelper . ошибка ( " activStabilizers stabalizers [ " + i + " ] == null !!! " );
- } еще {
- TileParticleGenerator tile = (worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) != null && worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) instanceof TileParticleGenerator) ? (TileParticleGenerator) worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) : null;
- if (tile == null) {
- //LogHelper.error("Missing Tile Entity (Particle Generator)");
- } else {
- tile.stabalizerMode = false;
- worldObj.setBlockMetadataWithNotify(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord(), 0, 2);
- }
- }
- }
- }
- private boolean areStabilizersActive() {
- for (int i = 0; i < stabilizers.length; i++) {
- if (stabilizers[i] == null) {
- LogHelper.error("activateStabilizers stabalizers[" + i + "] == null!!!");
- return false;
- }
- TileParticleGenerator tile = (worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) != null && worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) instanceof TileParticleGenerator) ? (TileParticleGenerator) worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) : null;
- if (tile == null) {
- //LogHelper.error("Missing Tile Entity (Particle Generator)");
- return false;
- }
- if (!tile.stabalizerMode || worldObj.getBlockMetadata(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) != 1)
- return false;
- }
- return true;
- }
- private boolean checkStabilizers() {
- for (int i = 0; i < stabilizers.length; i++) {
- if (stabilizers[i] == null) return false;
- TileParticleGenerator gen = (worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) != null && worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) instanceof TileParticleGenerator) ? (TileParticleGenerator) worldObj.getTileEntity(stabilizers[i].getXCoord(), stabilizers[i].getYCoord(), stabilizers[i].getZCoord()) : null;
- if (gen == null || !gen.stabalizerMode) return false;
- if (gen.getMaster().xCoord != xCoord || gen.getMaster().yCoord != yCoord || gen.getMaster().zCoord != zCoord)
- return false;
- }
- return true;
- }
- public int getTier() {
- return tier;
- }
- /**
- * ###############################################################
- */
- @Override
- public void writeToNBT(NBTTagCompound compound) {
- super.writeToNBT(compound);
- compound.setBoolean("Online", online);
- compound.setShort("Tier", (short) tier);
- compound.setLong("EnergyL", energy);
- for (int i = 0; i < stabilizers.length; i++) {
- if (stabilizers[i] != null) stabilizers[i].writeToNBT(compound, String.valueOf(i));
- }
- }
- @Override
- public void readFromNBT(NBTTagCompound compound) {
- online = compound.getBoolean("Online");
- tier = (int) compound.getShort("Tier");
- energy = compound.getLong("EnergyL");
- if (compound.hasKey("Energy")) energy = (long) compound.getDouble("Energy");
- for (int i = 0; i < stabilizers.length; i++) {
- if (stabilizers[i] != null) stabilizers[i].readFromNBT(compound, String.valueOf(i));
- }
- initializeCapacity();
- super.readFromNBT(compound);
- }
- @Override
- public Packet getDescriptionPacket() {
- NBTTagCompound nbttagcompound = new NBTTagCompound();
- writeToNBT(nbttagcompound);
- return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound);
- }
- @Override
- public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
- readFromNBT(pkt.func_148857_g());
- }
- /* EnergyHandler */
- public int receiveEnergy(int maxReceive, boolean simulate) {
- long energyReceived = Math.min(capacity - energy, maxReceive);
- if (!simulate) {
- energy += energyReceived;
- }
- return (int) energyReceived;
- }
- public int extractEnergy(int maxExtract, boolean simulate) {
- long energyExtracted = Math.min(energy, maxExtract);
- if (!simulate) {
- energy -= energyExtracted;
- }
- return (int) energyExtracted;
- }
- public long getEnergyStored() {
- return energy;
- }
- public long getMaxEnergyStored() {
- return capacity;
- }
- @Override
- public AxisAlignedBB getRenderBoundingBox() {
- return INFINITE_EXTENT_AABB;
- }
- @Override
- public double getMaxRenderDistanceSquared() {
- return 40960.0D;
- }
- private void detectAndRendChanges() {
- if (lastTickCapacity != energy)
- lastTickCapacity = ( Длинный ) sendObjectToClient ( Список литературы . LONG_ID , 0 , энергия, новый NetworkRegistry . TargetPoint (worldObj . поставщик . dimensionId, xCoord, yCoord, zCoord, 20 ));
- }
- @Override
- public void receiveObjectFromServer ( int index , Object object ) {
- энергия = ( длинный ) объект;
- }
- }
- © 2020 GitHub, Inc.
- условия
- Конфиденциальность
- Безопасность
- Положение дел
- Помогите
- Как связаться с GitHub
- ценообразование
- API
- Повышение квалификации
- Блог
- Около
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement