Power fixes

This commit is contained in:
modmuss50 2019-07-10 22:34:55 +01:00
parent e26d1edc52
commit d6e64364fc
3 changed files with 78 additions and 60 deletions

View file

@ -55,6 +55,8 @@ import techreborn.items.ItemUpgrade;
import techreborn.utils.InitUtils;
import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.function.Function;
@RebornRegister(TechReborn.MOD_ID)
public class TRContent {
@ -185,7 +187,7 @@ public class TRContent {
@Nullable
public static Item PERIDOT_BOOTS;
public static enum SolarPanels {
public static enum SolarPanels implements ItemConvertible {
BASIC(EnumPowerTier.MICRO, ConfigTechReborn.basicGenerationRateD, ConfigTechReborn.basicGenerationRateN),
ADVANCED(EnumPowerTier.LOW, ConfigTechReborn.advancedGenerationRateD, ConfigTechReborn.advancedGenerationRateN),
INDUSTRIAL(EnumPowerTier.MEDIUM, ConfigTechReborn.industrialGenerationRateD, ConfigTechReborn.industrialGenerationRateN),
@ -215,6 +217,11 @@ public class TRContent {
InitUtils.setup(block, name + "_solar_panel");
}
@Override
public Item asItem() {
return Item.fromBlock(block);
}
}
public static enum Cables implements ItemConvertible {
@ -325,6 +332,10 @@ public class TRContent {
public Block getCasing() {
return casing;
}
public static ItemConvertible[] getCasings(){
return Arrays.stream(MachineBlocks.values()).map((Function<MachineBlocks, ItemConvertible>) machineBlocks -> () -> Item.fromBlock(machineBlocks.casing)).toArray(ItemConvertible[]::new);
}
}

View file

@ -27,8 +27,10 @@ package techreborn.init;
import net.minecraft.block.Block;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.item.ItemConvertible;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import org.apache.commons.lang3.Validate;
import reborncore.common.tile.TileMachineBase;
import techreborn.TechReborn;
import techreborn.tiles.*;
@ -59,74 +61,78 @@ import techreborn.tiles.transformers.TileLVTransformer;
import techreborn.tiles.transformers.TileMVTransformer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
public class TRTileEntities {
public static List<BlockEntityType<?>> TYPES = new ArrayList<>();
public static final BlockEntityType<TileThermalGenerator> THERMAL_GEN = register(TileThermalGenerator.class, "thermal_generator");
public static final BlockEntityType<TileQuantumTank> QUANTUM_TANK = register(TileQuantumTank.class, "quantum_tank");
public static final BlockEntityType<TileQuantumChest> QUANTUM_CHEST = register(TileQuantumChest.class, "quantum_chest");
public static final BlockEntityType<TileDigitalChest> DIGITAL_CHEST = register(TileDigitalChest.class, "digital_chest");
public static final BlockEntityType<TileIndustrialCentrifuge> INDUSTRIAL_CENTRIFUGE = register(TileIndustrialCentrifuge.class, "industrial_centrifuge");
public static final BlockEntityType<TileRollingMachine> ROLLING_MACHINE = register(TileRollingMachine.class, "rolling_machine");
public static final BlockEntityType<TileIndustrialBlastFurnace> INDUSTRIAL_BLAST_FURNACE = register(TileIndustrialBlastFurnace.class, "industrial_blast_furnace");
public static final BlockEntityType<TileAlloySmelter> ALLOY_SMELTER = register(TileAlloySmelter.class, "alloy_smelter");
public static final BlockEntityType<TileIndustrialGrinder> INDUSTRIAL_GRINDER = register(TileIndustrialGrinder.class, "industrial_grinder");
public static final BlockEntityType<TileImplosionCompressor> IMPLOSION_COMPRESSOR = register(TileImplosionCompressor.class, "implosion_compressor");
public static final BlockEntityType<TileMatterFabricator> MATTER_FABRICATOR = register(TileMatterFabricator.class, "matter_fabricator");
public static final BlockEntityType<TileChunkLoader> CHUNK_LOADER = register(TileChunkLoader.class, "chunk_loader");
public static final BlockEntityType<TileChargeOMat> CHARGE_O_MAT = register(TileChargeOMat.class, "charge_o_mat");
public static final BlockEntityType<TilePlayerDectector> PLAYER_DETECTOR = register(TilePlayerDectector.class, "player_detector");
public static final BlockEntityType<TileCable> CABLE = register(TileCable.class, "cable");
public static final BlockEntityType<TileMachineCasing> MACHINE_CASINGS = register(TileMachineCasing.class, "machine_casing");
public static final BlockEntityType<TileDragonEggSyphon> DRAGON_EGG_SYPHON = register(TileDragonEggSyphon.class, "dragon_egg_syphon");
public static final BlockEntityType<TileAssemblingMachine> ASSEMBLY_MACHINE = register(TileAssemblingMachine.class, "assembly_machine");
public static final BlockEntityType<TileDieselGenerator> DIESEL_GENERATOR = register(TileDieselGenerator.class, "diesel_generator");
public static final BlockEntityType<TileIndustrialElectrolyzer> INDUSTRIAL_ELECTROLYZER = register(TileIndustrialElectrolyzer.class, "industrial_electrolyzer");
public static final BlockEntityType<TileSemiFluidGenerator> SEMI_FLUID_GENERATOR = register(TileSemiFluidGenerator.class, "semi_fluid_generator");
public static final BlockEntityType<TileGasTurbine> GAS_TURBINE = register(TileGasTurbine.class, "gas_turbine");
public static final BlockEntityType<TileIronAlloyFurnace> IRON_ALLOY_FURNACE = register(TileIronAlloyFurnace.class, "iron_alloy_furnace");
public static final BlockEntityType<TileChemicalReactor> CHEMICAL_REACTOR = register(TileChemicalReactor.class, "chemical_reactor");
public static final BlockEntityType<TileInterdimensionalSU> INTERDIMENSIONAL_SU = register(TileInterdimensionalSU.class, "interdimensional_su");
public static final BlockEntityType<TileAdjustableSU> ADJUSTABLE_SU = register(TileAdjustableSU.class, "adjustable_su");
public static final BlockEntityType<TileLapotronicSU> LAPOTRONIC_SU = register(TileLapotronicSU.class, "lapotronic_su");
public static final BlockEntityType<TileLSUStorage> LSU_STORAGE = register(TileLSUStorage.class, "lsu_storage");
public static final BlockEntityType<TileDistillationTower> DISTILLATION_TOWER = register(TileDistillationTower.class, "distillation_tower");
public static final BlockEntityType<TileVacuumFreezer> VACUUM_FREEZER = register(TileVacuumFreezer.class, "vacuum_freezer");
public static final BlockEntityType<TileFusionControlComputer> FUSION_CONTROL_COMPUTER = register(TileFusionControlComputer.class, "fusion_control_computer");
public static final BlockEntityType<TileLightningRod> LIGHTNING_ROD = register(TileLightningRod.class, "lightning_rod");
public static final BlockEntityType<TileIndustrialSawmill> INDUSTRIAL_SAWMILL = register(TileIndustrialSawmill.class, "industrial_sawmill");
public static final BlockEntityType<TileGrinder> GRINDER = register(TileGrinder.class, "grinder", TRContent.Machine.GRINDER.block);
public static final BlockEntityType<TileSolidFuelGenerator> SOLID_FUEL_GENEREATOR = register(TileSolidFuelGenerator.class, "solid_fuel_generator");
public static final BlockEntityType<TileExtractor> EXTRACTOR = register(TileExtractor.class, "extractor");
public static final BlockEntityType<TileCompressor> COMPRESSOR = register(TileCompressor.class, "compressor");
public static final BlockEntityType<TileElectricFurnace> ELECTRIC_FURNACE = register(TileElectricFurnace.class, "electric_furnace");
public static final BlockEntityType<TileSolarPanel> SOLAR_PANEL = register(TileSolarPanel.class, "solar_panel");
public static final BlockEntityType<TileCreativeQuantumTank> CREATIVE_QUANTUM_TANK = register(TileCreativeQuantumTank.class, "creative_quantum_tank");
public static final BlockEntityType<TileCreativeQuantumChest> CREATIVE_QUANTUM_CHEST = register(TileCreativeQuantumChest.class, "creative_quantum_chest");
public static final BlockEntityType<TileWaterMill> WATER_MILL = register(TileWaterMill.class, "water_mill");
public static final BlockEntityType<TileWindMill> WIND_MILL = register(TileWindMill.class, "wind_mill");
public static final BlockEntityType<TileMachineBase> MACHINE_BASE = register(TileMachineBase.class, "machine_base");
public static final BlockEntityType<TileRecycler> RECYCLER = register(TileRecycler.class, "recycler");
public static final BlockEntityType<TileLowVoltageSU> LOW_VOLTAGE_SU = register(TileLowVoltageSU.class, "low_voltage_su");
public static final BlockEntityType<TileMediumVoltageSU> MEDIUM_VOLTAGE_SU = register(TileMediumVoltageSU.class, "medium_voltage_su");
public static final BlockEntityType<TileHighVoltageSU> HIGH_VOLTAGE_SU = register(TileHighVoltageSU.class, "high_voltage_su");
public static final BlockEntityType<TileLVTransformer> LV_TRANSFORMER = register(TileLVTransformer.class, "lv_transformer");
public static final BlockEntityType<TileMVTransformer> MV_TRANSFORMER = register(TileMVTransformer.class, "mv_transformer");
public static final BlockEntityType<TileHVTransformer> HV_TRANSFORMER = register(TileHVTransformer.class, "hv_transformer");
public static final BlockEntityType<TileAutoCraftingTable> AUTO_CRAFTING_TABLE = register(TileAutoCraftingTable.class, "auto_crafting_table");
public static final BlockEntityType<TileIronFurnace> IRON_FURNACE = register(TileIronFurnace.class, "iron_furnace");
public static final BlockEntityType<TileScrapboxinator> SCRAPBOXINATOR = register(TileScrapboxinator.class, "scrapboxinator");
public static final BlockEntityType<TilePlasmaGenerator> PLASMA_GENERATOR = register(TilePlasmaGenerator.class, "plasma_generator");
public static final BlockEntityType<TileLamp> LAMP = register(TileLamp.class, "lamp");
public static final BlockEntityType<TileAlarm> ALARM = register(TileAlarm.class, "alarm");
public static final BlockEntityType<TileFluidReplicator> FLUID_REPLICATOR = register(TileFluidReplicator.class, "fluid_replicator");
public static final BlockEntityType<TileThermalGenerator> THERMAL_GEN = register(TileThermalGenerator.class, "thermal_generator", TRContent.Machine.THERMAL_GENERATOR);
public static final BlockEntityType<TileQuantumTank> QUANTUM_TANK = register(TileQuantumTank.class, "quantum_tank", TRContent.Machine.QUANTUM_TANK);
public static final BlockEntityType<TileQuantumChest> QUANTUM_CHEST = register(TileQuantumChest.class, "quantum_chest", TRContent.Machine.QUANTUM_CHEST);
public static final BlockEntityType<TileDigitalChest> DIGITAL_CHEST = register(TileDigitalChest.class, "digital_chest", TRContent.Machine.DIGITAL_CHEST);
public static final BlockEntityType<TileIndustrialCentrifuge> INDUSTRIAL_CENTRIFUGE = register(TileIndustrialCentrifuge.class, "industrial_centrifuge", TRContent.Machine.INDUSTRIAL_CENTRIFUGE);
public static final BlockEntityType<TileRollingMachine> ROLLING_MACHINE = register(TileRollingMachine.class, "rolling_machine", TRContent.Machine.ROLLING_MACHINE);
public static final BlockEntityType<TileIndustrialBlastFurnace> INDUSTRIAL_BLAST_FURNACE = register(TileIndustrialBlastFurnace.class, "industrial_blast_furnace", TRContent.Machine.INDUSTRIAL_BLAST_FURNACE);
public static final BlockEntityType<TileAlloySmelter> ALLOY_SMELTER = register(TileAlloySmelter.class, "alloy_smelter", TRContent.Machine.ALLOY_SMELTER);
public static final BlockEntityType<TileIndustrialGrinder> INDUSTRIAL_GRINDER = register(TileIndustrialGrinder.class, "industrial_grinder", TRContent.Machine.INDUSTRIAL_GRINDER);
public static final BlockEntityType<TileImplosionCompressor> IMPLOSION_COMPRESSOR = register(TileImplosionCompressor.class, "implosion_compressor", TRContent.Machine.IMPLOSION_COMPRESSOR);
public static final BlockEntityType<TileMatterFabricator> MATTER_FABRICATOR = register(TileMatterFabricator.class, "matter_fabricator", TRContent.Machine.MATTER_FABRICATOR);
public static final BlockEntityType<TileChunkLoader> CHUNK_LOADER = register(TileChunkLoader.class, "chunk_loader", TRContent.Machine.CHUNK_LOADER);
public static final BlockEntityType<TileChargeOMat> CHARGE_O_MAT = register(TileChargeOMat.class, "charge_o_mat", TRContent.Machine.CHARGE_O_MAT);
public static final BlockEntityType<TilePlayerDectector> PLAYER_DETECTOR = register(TilePlayerDectector.class, "player_detector", TRContent.Machine.PLAYER_DETECTOR);
public static final BlockEntityType<TileCable> CABLE = register(TileCable.class, "cable", TRContent.Cables.values());
public static final BlockEntityType<TileMachineCasing> MACHINE_CASINGS = register(TileMachineCasing.class, "machine_casing", TRContent.MachineBlocks.getCasings());
public static final BlockEntityType<TileDragonEggSyphon> DRAGON_EGG_SYPHON = register(TileDragonEggSyphon.class, "dragon_egg_syphon", TRContent.Machine.DRAGON_EGG_SYPHON);
public static final BlockEntityType<TileAssemblingMachine> ASSEMBLY_MACHINE = register(TileAssemblingMachine.class, "assembly_machine", TRContent.Machine.ASSEMBLY_MACHINE);
public static final BlockEntityType<TileDieselGenerator> DIESEL_GENERATOR = register(TileDieselGenerator.class, "diesel_generator", TRContent.Machine.DIESEL_GENERATOR);
public static final BlockEntityType<TileIndustrialElectrolyzer> INDUSTRIAL_ELECTROLYZER = register(TileIndustrialElectrolyzer.class, "industrial_electrolyzer", TRContent.Machine.INDUSTRIAL_ELECTROLYZER);
public static final BlockEntityType<TileSemiFluidGenerator> SEMI_FLUID_GENERATOR = register(TileSemiFluidGenerator.class, "semi_fluid_generator", TRContent.Machine.SEMI_FLUID_GENERATOR);
public static final BlockEntityType<TileGasTurbine> GAS_TURBINE = register(TileGasTurbine.class, "gas_turbine", TRContent.Machine.GAS_TURBINE);
public static final BlockEntityType<TileIronAlloyFurnace> IRON_ALLOY_FURNACE = register(TileIronAlloyFurnace.class, "iron_alloy_furnace", TRContent.Machine.IRON_ALLOY_FURNACE);
public static final BlockEntityType<TileChemicalReactor> CHEMICAL_REACTOR = register(TileChemicalReactor.class, "chemical_reactor", TRContent.Machine.CHEMICAL_REACTOR);
public static final BlockEntityType<TileInterdimensionalSU> INTERDIMENSIONAL_SU = register(TileInterdimensionalSU.class, "interdimensional_su", TRContent.Machine.INTERDIMENSIONAL_SU);
public static final BlockEntityType<TileAdjustableSU> ADJUSTABLE_SU = register(TileAdjustableSU.class, "adjustable_su", TRContent.Machine.ADJUSTABLE_SU);
public static final BlockEntityType<TileLapotronicSU> LAPOTRONIC_SU = register(TileLapotronicSU.class, "lapotronic_su", TRContent.Machine.LAPOTRONIC_SU);
public static final BlockEntityType<TileLSUStorage> LSU_STORAGE = register(TileLSUStorage.class, "lsu_storage", TRContent.Machine.LSU_STORAGE);
public static final BlockEntityType<TileDistillationTower> DISTILLATION_TOWER = register(TileDistillationTower.class, "distillation_tower", TRContent.Machine.DISTILLATION_TOWER);
public static final BlockEntityType<TileVacuumFreezer> VACUUM_FREEZER = register(TileVacuumFreezer.class, "vacuum_freezer", TRContent.Machine.VACUUM_FREEZER);
public static final BlockEntityType<TileFusionControlComputer> FUSION_CONTROL_COMPUTER = register(TileFusionControlComputer.class, "fusion_control_computer", TRContent.Machine.FUSION_CONTROL_COMPUTER);
public static final BlockEntityType<TileLightningRod> LIGHTNING_ROD = register(TileLightningRod.class, "lightning_rod", TRContent.Machine.LIGHTNING_ROD);
public static final BlockEntityType<TileIndustrialSawmill> INDUSTRIAL_SAWMILL = register(TileIndustrialSawmill.class, "industrial_sawmill", TRContent.Machine.INDUSTRIAL_SAWMILL);
public static final BlockEntityType<TileGrinder> GRINDER = register(TileGrinder.class, "grinder", TRContent.Machine.GRINDER);
public static final BlockEntityType<TileSolidFuelGenerator> SOLID_FUEL_GENEREATOR = register(TileSolidFuelGenerator.class, "solid_fuel_generator", TRContent.Machine.SOLID_FUEL_GENERATOR);
public static final BlockEntityType<TileExtractor> EXTRACTOR = register(TileExtractor.class, "extractor", TRContent.Machine.EXTRACTOR);
public static final BlockEntityType<TileCompressor> COMPRESSOR = register(TileCompressor.class, "compressor", TRContent.Machine.COMPRESSOR);
public static final BlockEntityType<TileElectricFurnace> ELECTRIC_FURNACE = register(TileElectricFurnace.class, "electric_furnace", TRContent.Machine.ELECTRIC_FURNACE);
public static final BlockEntityType<TileSolarPanel> SOLAR_PANEL = register(TileSolarPanel.class, "solar_panel", TRContent.SolarPanels.values());
public static final BlockEntityType<TileCreativeQuantumTank> CREATIVE_QUANTUM_TANK = register(TileCreativeQuantumTank.class, "creative_quantum_tank", TRContent.Machine.CREATIVE_QUANTUM_TANK);
public static final BlockEntityType<TileCreativeQuantumChest> CREATIVE_QUANTUM_CHEST = register(TileCreativeQuantumChest.class, "creative_quantum_chest", TRContent.Machine.CREATIVE_QUANTUM_CHEST);
public static final BlockEntityType<TileWaterMill> WATER_MILL = register(TileWaterMill.class, "water_mill", TRContent.Machine.WATER_MILL);
public static final BlockEntityType<TileWindMill> WIND_MILL = register(TileWindMill.class, "wind_mill", TRContent.Machine.WIND_MILL);
public static final BlockEntityType<TileRecycler> RECYCLER = register(TileRecycler.class, "recycler", TRContent.Machine.RECYCLER);
public static final BlockEntityType<TileLowVoltageSU> LOW_VOLTAGE_SU = register(TileLowVoltageSU.class, "low_voltage_su", TRContent.Machine.LOW_VOLTAGE_SU);
public static final BlockEntityType<TileMediumVoltageSU> MEDIUM_VOLTAGE_SU = register(TileMediumVoltageSU.class, "medium_voltage_su", TRContent.Machine.MEDIUM_VOLTAGE_SU);
public static final BlockEntityType<TileHighVoltageSU> HIGH_VOLTAGE_SU = register(TileHighVoltageSU.class, "high_voltage_su", TRContent.Machine.HIGH_VOLTAGE_SU);
public static final BlockEntityType<TileLVTransformer> LV_TRANSFORMER = register(TileLVTransformer.class, "lv_transformer", TRContent.Machine.LV_TRANSFORMER);
public static final BlockEntityType<TileMVTransformer> MV_TRANSFORMER = register(TileMVTransformer.class, "mv_transformer", TRContent.Machine.MV_TRANSFORMER);
public static final BlockEntityType<TileHVTransformer> HV_TRANSFORMER = register(TileHVTransformer.class, "hv_transformer", TRContent.Machine.HV_TRANSFORMER);
public static final BlockEntityType<TileAutoCraftingTable> AUTO_CRAFTING_TABLE = register(TileAutoCraftingTable.class, "auto_crafting_table", TRContent.Machine.AUTO_CRAFTING_TABLE);
public static final BlockEntityType<TileIronFurnace> IRON_FURNACE = register(TileIronFurnace.class, "iron_furnace", TRContent.Machine.IRON_FURNACE);
public static final BlockEntityType<TileScrapboxinator> SCRAPBOXINATOR = register(TileScrapboxinator.class, "scrapboxinator", TRContent.Machine.SCRAPBOXINATOR);
public static final BlockEntityType<TilePlasmaGenerator> PLASMA_GENERATOR = register(TilePlasmaGenerator.class, "plasma_generator", TRContent.Machine.PLASMA_GENERATOR);
public static final BlockEntityType<TileLamp> LAMP = register(TileLamp.class, "lamp", TRContent.Machine.LAMP_INCANDESCENT, TRContent.Machine.LAMP_LED);
public static final BlockEntityType<TileAlarm> ALARM = register(TileAlarm.class, "alarm", TRContent.Machine.ALARM);
public static final BlockEntityType<TileFluidReplicator> FLUID_REPLICATOR = register(TileFluidReplicator.class, "fluid_replicator", TRContent.Machine.FLUID_REPLICATOR);
public static <T extends BlockEntity> BlockEntityType<T> register(Class<T> tClass, String name, ItemConvertible... items) {
return register(tClass, name, Arrays.stream(items).map(itemConvertible -> Block.getBlockFromItem(itemConvertible.asItem())).toArray(Block[]::new));
}
public static <T extends BlockEntity> BlockEntityType<T> register(Class<T> tClass, String name, Block... blocks) {
Validate.isTrue(blocks.length > 0, "no blocks for tile entity type!");
return register(new Identifier(TechReborn.MOD_ID, name).toString(), BlockEntityType.Builder.create(() -> createBlockEntity(tClass), blocks));
}

View file

@ -66,6 +66,7 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop {
return;
}
if (panel == TRContent.SolarPanels.CREATIVE) {
checkOverfill = false;
setEnergy(Integer.MAX_VALUE);
return;
}