@Override public int getLightValue() { return isActive ? LIGHT_VALUES[getType()] : 0; }
@Override @SideOnly (Side.CLIENT) public TextureAtlasSprite getTexture(int side, int pass) { if (pass == 0) { if (side == 0) { return TETextures.MACHINE_BOTTOM; } else if (side == 1) { return TETextures.MACHINE_TOP; } return side != facing ? TETextures.MACHINE_SIDE : isActive ? TETextures.MACHINE_ACTIVE[getType()] : TETextures.MACHINE_FACE[getType()]; } else if (side < 6) { return TETextures.CONFIG[sideConfig.sideTypes[sideCache[side]]]; } return TETextures.MACHINE_SIDE; }
@Override protected boolean isValidAugment(AugmentType type, String id) { if (type == AugmentType.CREATIVE && !isCreative) { return false; } if (type == AugmentType.MODE && hasModeAugment) { return false; } if (augmentSecondaryNull && TEProps.MACHINE_SECONDARY_NULL.equals(id)) { return false; } return VALID_AUGMENTS_BASE.contains(id) || VALID_AUGMENTS[getType()].contains(id) || super.isValidAugment(type, id); }
public TileMachineBase() { sideConfig = SIDE_CONFIGS[this.getType()]; slotConfig = SLOT_CONFIGS[this.getType()]; energyConfig = ENERGY_CONFIGS[this.getType()].copy(); energyStorage = new EnergyStorage(energyConfig.maxEnergy, energyConfig.maxPower * 4); Arrays.fill(augments, ItemStack.EMPTY); setDefaultSides(); enableAutoOutput = true; }
protected int getBasePower(int level) { return ENERGY_CONFIGS[getType()].maxPower * POWER_SCALING[MathHelper.clamp(level, CoreProps.LEVEL_MIN, CoreProps.LEVEL_MAX)] / POWER_BASE; }
@Override protected String getTileName() { return "tile.thermalexpansion.machine." + Type.values()[getType()].getName() + ".name"; }
protected void updateIfChanged(boolean curActive) { if (curActive != isActive && !wasActive) { if (LIGHT_VALUES[getType()] != 0) { updateLighting(); } sendTilePacket(Side.CLIENT); } else if (wasActive && tracker.hasDelayPassed(world, CoreProps.tileUpdateDelay)) { wasActive = false; if (LIGHT_VALUES[getType()] != 0) { updateLighting(); } sendTilePacket(Side.CLIENT); } }