public void validateStructure(World world, int x, int y, int z) { if (worldObj.isRemote) return; if (this.getBlockMetadata() == 15) { complete = true; } else { complete = ChromaStructures.getPortalStructure(world, x, y, z, false).matchInWorld(); complete &= this.getEntities(world, x, y, z); } worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); }
@Override public void updateEntity() { if (ticks == 0) this.onFirstTick(); ticks++; if (DragonAPICore.debugtest) { ChromaStructures.getPortalStructure(worldObj, xCoord, yCoord, zCoord, false).place(); DragonAPICore.debugtest = false; } if (complete) { if (charge < MINCHARGE || !ChunkProviderChroma.areStructuresReady()) { charge++; if (worldObj.isRemote) this.chargingParticles(); } } else { charge = 0; } int pos = this.getPortalPosition(); if (worldObj.isRemote) { if (pos == 5 && this.isFull9x9()) { if (worldObj.isRemote) this.idleParticles(); if (complete) { if (charge >= MINCHARGE) { if (worldObj.isRemote) this.activeParticles(); } } } } if (pos == 5 && this.isFull9x9()) { if (ticks % 20 == 0) this.validateStructure(worldObj, xCoord, yCoord, zCoord); if (complete && ticks % 90 == 0) { ChromaSounds.PORTAL.playSoundAtBlock(this); } } }