Merge remote-tracking branch 'remotes/origin/1.15' into 1.16

# Conflicts:
#	src/main/java/techreborn/init/TRContent.java
#	src/main/java/techreborn/items/armor/BatpackItem.java
This commit is contained in:
modmuss50 2020-03-23 20:19:53 +00:00
commit acf59dd1a5
29 changed files with 297 additions and 154 deletions

View file

@ -172,6 +172,9 @@ public class TechRebornConfig {
@Config(config = "items", category = "power", key = "nanoSaberCost", comment = "Energy Cost for Nano Saber")
public static int nanosaberCost = 150;
@Config(config = "items", category = "power", key = "nanoSaberDamage", comment = "Damage value for the Nano Saber")
public static int nanosaberDamage = 20;
@Config(config = "items", category = "power", key = "electricTreetapCharge", comment = "Energy Capacity for Electric Treetap")
public static int electricTreetapCharge = 10_000;
@ -589,4 +592,52 @@ public class TechRebornConfig {
@Config(config = "world", category = "loot", key = "enableEndLoot", comment = "When true TechReborn will add ingots, machine frames and circuits to The End loot chests.")
public static boolean enableEndLoot = true;
@Config(config = "world", category = "ore", key = "enableBauxiteOre", comment = "Generate Bauxite Ore in The Overworld.")
public static boolean enableBauxiteOre = true;
@Config(config = "world", category = "ore", key = "enableCopperOre", comment = "Generate Copper Ore in The Overworld.")
public static boolean enableCopperOre = true;
@Config(config = "world", category = "ore", key = "enableGalenaOre", comment = "Generate Galena Ore in The Overworld.")
public static boolean enableGalenaOre = true;
@Config(config = "world", category = "ore", key = "enableIridiumOre", comment = "Generate Iridium Ore in The Overworld.")
public static boolean enableIridiumOre = true;
@Config(config = "world", category = "ore", key = "enableLeadOre", comment = "Generate Lead Ore in The Overworld.")
public static boolean enableLeadOre = true;
@Config(config = "world", category = "ore", key = "enableRubyOre", comment = "Generate Ruby Ore in The Overworld.")
public static boolean enableRubyOre = true;
@Config(config = "world", category = "ore", key = "enableSapphireOre", comment = "Generate Sapphire Ore in The Overworld.")
public static boolean enableSapphireOre = true;
@Config(config = "world", category = "ore", key = "enableSilverOre", comment = "Generate Silver Ore in The Overworld.")
public static boolean enableSilverOre = true;
@Config(config = "world", category = "ore", key = "enableTinOre", comment = "Generate Tin Ore in The Overworld.")
public static boolean enableTinOre = true;
@Config(config = "world", category = "ore", key = "enableCinnabarOre", comment = "Generate Cinnabar Ore in The Nether.")
public static boolean enableCinnabarOre = true;
@Config(config = "world", category = "ore", key = "enablePyriteOre", comment = "Generate Pyrite Ore in The Nether.")
public static boolean enablePyriteOre = true;
@Config(config = "world", category = "ore", key = "enableSphaleriteOre", comment = "Generate Sphalerite Ore in The Nether.")
public static boolean enableSphaleriteOre = true;
@Config(config = "world", category = "ore", key = "enablePeridotOre", comment = "Generate Peridot Ore in The End.")
public static boolean enablePeridotOre = true;
@Config(config = "world", category = "ore", key = "enableSheldoniteOre", comment = "Generate Sheldonite Ore in The End.")
public static boolean enableSheldoniteOre = true;
@Config(config = "world", category = "ore", key = "enableSodaliteOre", comment = "Generate Sodalite Ore in The End.")
public static boolean enableSodaliteOre = true;
@Config(config = "world", category = "ore", key = "enableTungstenOre", comment = "Generate Tungsten Ore in The End.")
public static boolean enableTungstenOre = true;
}

View file

@ -48,28 +48,38 @@ import techreborn.blockentity.generator.advanced.*;
import techreborn.blockentity.generator.basic.SolidFuelGeneratorBlockEntity;
import techreborn.blockentity.generator.basic.WaterMillBlockEntity;
import techreborn.blockentity.generator.basic.WindMillBlockEntity;
import techreborn.blockentity.machine.misc.ChargeOMatBlockEntity;
import techreborn.blockentity.machine.misc.DrainBlockEntity;
import techreborn.blockentity.machine.multiblock.*;
import techreborn.blockentity.machine.tier1.*;
import techreborn.blockentity.machine.tier3.*;
import techreborn.blockentity.machine.tier3.ChunkLoaderBlockEntity;
import techreborn.blockentity.machine.tier3.IndustrialCentrifugeBlockEntity;
import techreborn.blockentity.machine.tier3.MatterFabricatorBlockEntity;
import techreborn.blockentity.storage.energy.AdjustableSUBlockEntity;
import techreborn.blockentity.storage.fluid.CreativeQuantumTankBlockEntity;
import techreborn.blockentity.storage.fluid.QuantumTankBlockEntity;
import techreborn.blockentity.storage.item.CreativeQuantumChestBlockEntity;
import techreborn.blockentity.storage.item.DigitalChestBlockEntity;
import techreborn.blockentity.storage.item.QuantumChestBlockEntity;
import techreborn.blocks.*;
import techreborn.blocks.DataDrivenMachineBlock;
import techreborn.blocks.GenericMachineBlock;
import techreborn.blocks.cable.CableBlock;
import techreborn.blocks.generator.*;
import techreborn.blocks.generator.BlockFusionCoil;
import techreborn.blocks.generator.BlockFusionControlComputer;
import techreborn.blocks.generator.BlockSolarPanel;
import techreborn.blocks.generator.GenericGeneratorBlock;
import techreborn.blocks.lighting.BlockLamp;
import techreborn.blocks.machine.tier0.IronAlloyFurnaceBlock;
import techreborn.blocks.machine.tier0.IronFurnaceBlock;
import techreborn.blocks.machine.tier1.BlockPlayerDetector;
import techreborn.blocks.misc.BlockAlarm;
import techreborn.blocks.misc.BlockMachineCasing;
import techreborn.blocks.misc.BlockMachineFrame;
import techreborn.blocks.misc.BlockStorage;
import techreborn.blocks.storage.OldBlock;
import techreborn.blocks.storage.energy.*;
import techreborn.blocks.machine.tier0.IronAlloyFurnaceBlock;
import techreborn.blocks.machine.tier0.IronFurnaceBlock;
import techreborn.blocks.machine.tier1.BlockPlayerDetector;
import techreborn.blocks.storage.item.StorageUnitBlock;
import techreborn.blocks.storage.fluid.TankUnitBlock;
import techreborn.blocks.storage.item.StorageUnitBlock;
import techreborn.blocks.transformers.BlockEVTransformer;
import techreborn.blocks.transformers.BlockHVTransformer;
import techreborn.blocks.transformers.BlockLVTransformer;
@ -88,7 +98,7 @@ import java.util.Locale;
import java.util.function.Function;
public class TRContent {
// Misc Blocks
public static Block COMPUTER_CUBE;
public static Block NUKE;
@ -107,7 +117,7 @@ public class TRContent {
public static Block RUBBER_PRESSURE_PLATE;
public static Block RUBBER_DOOR;
public static Block RUBBER_LOG_STRIPPED;
// Armor
public static Item CLOAKING_DEVICE;
public static Item LAPOTRONIC_ORBPACK;
@ -228,7 +238,7 @@ public class TRContent {
public static Item PERIDOT_LEGGINGS;
@Nullable
public static Item PERIDOT_BOOTS;
public enum SolarPanels implements ItemConvertible {
BASIC(EnergyTier.MICRO, TechRebornConfig.basicGenerationRateD, TechRebornConfig.basicGenerationRateN),
ADVANCED(EnergyTier.LOW, TechRebornConfig.advancedGenerationRateD, TechRebornConfig.advancedGenerationRateN),
@ -236,10 +246,10 @@ public class TRContent {
ULTIMATE(EnergyTier.HIGH, TechRebornConfig.ultimateGenerationRateD, TechRebornConfig.ultimateGenerationRateN),
QUANTUM(EnergyTier.EXTREME, TechRebornConfig.quantumGenerationRateD, TechRebornConfig.quantumGenerationRateN),
CREATIVE(EnergyTier.INFINITE, Integer.MAX_VALUE / 100, Integer.MAX_VALUE / 100);
public final String name;
public final Block block;
// Generation of EU during Day
public int generationRateD;
// Generation of EU during Night
@ -247,7 +257,7 @@ public class TRContent {
// Internal EU storage of solar panel
public int internalCapacity;
public final EnergyTier powerTier;
SolarPanels(EnergyTier tier, int generationRateD, int generationRateN) {
name = this.toString().toLowerCase(Locale.ROOT);
powerTier = tier;
@ -256,7 +266,7 @@ public class TRContent {
this.generationRateN = generationRateN;
internalCapacity = generationRateD * TechRebornConfig.solarInternalCapacityMultiplier;
InitUtils.setup(block, name + "_solar_panel");
}
@ -333,7 +343,7 @@ public class TRContent {
INSULATED_GOLD(512, 10.0, false, EnergyTier.HIGH),
INSULATED_HV(2048, 10.0, false, EnergyTier.EXTREME),
SUPERCONDUCTOR(Integer.MAX_VALUE / 4, 10.0, false, EnergyTier.INFINITE);
public final String name;
public final CableBlock block;
@ -344,8 +354,8 @@ public class TRContent {
public boolean canKill;
public boolean defaultCanKill;
public EnergyTier tier;
Cables(int transferRate, double cableThickness, boolean canKill, EnergyTier tier) {
name = this.toString().toLowerCase(Locale.ROOT);
this.transferRate = transferRate;
@ -357,11 +367,11 @@ public class TRContent {
this.block = new CableBlock(this);
InitUtils.setup(block, name + "_cable");
}
public ItemStack getStack() {
return new ItemStack(block);
}
@Override
public Item asItem() {
return block.asItem();
@ -369,21 +379,21 @@ public class TRContent {
}
public enum Ores implements ItemConvertible {
BAUXITE(6, 10, 10, 60),
CINNABAR(6, 3, 10, 126),
COPPER(8, 16, 20, 60),
GALENA(8, 16, 10, 60),
IRIDIUM(3, 3, 5, 60),
LEAD(6, 16, 20, 60),
PERIDOT(6, 3, 10, 250),
PYRITE(6, 3, 10, 126),
RUBY(6, 3, 10, 60),
SAPPHIRE(6, 3, 10, 60),
SHELDONITE(6, 3, 10, 250),
SILVER(6, 16, 20, 60),
BAUXITE(6, 10, 10, 60),
CINNABAR(6, 3, 10, 126),
COPPER(8, 16, 20, 60),
GALENA(8, 16, 10, 60),
IRIDIUM(3, 3, 5, 60),
LEAD(6, 16, 20, 60),
PERIDOT(6, 3, 10, 250),
PYRITE(6, 3, 10, 126),
RUBY(6, 3, 10, 60),
SAPPHIRE(6, 3, 10, 60),
SHELDONITE(6, 3, 10, 250),
SILVER(6, 16, 20, 60),
SODALITE(6, 3, 10, 250),
SPHALERITE(6, 3, 10, 126),
TIN(8, 16, 20, 60),
SPHALERITE(6, 3, 10, 126),
TIN(8, 16, 20, 60),
TUNGSTEN(6, 3, 10, 250);
public final String name;
@ -454,12 +464,12 @@ public class TRContent {
return casing;
}
public static ItemConvertible[] getCasings(){
public static ItemConvertible[] getCasings() {
return Arrays.stream(MachineBlocks.values()).map((Function<MachineBlocks, ItemConvertible>) machineBlocks -> () -> Item.fromBlock(machineBlocks.casing)).toArray(ItemConvertible[]::new);
}
}
public enum Machine implements ItemConvertible {
ALLOY_SMELTER(new GenericMachineBlock(EGui.ALLOY_SMELTER, AlloySmelterBlockEntity::new)),
ASSEMBLY_MACHINE(new GenericMachineBlock(EGui.ASSEMBLING_MACHINE, AssemblingMachineBlockEntity::new)),
@ -487,7 +497,7 @@ public class TRContent {
SOLID_CANNING_MACHINE(new GenericMachineBlock(EGui.SOLID_CANNING_MACHINE, SoildCanningMachineBlockEntity::new)),
WIRE_MILL(new GenericMachineBlock(EGui.WIRE_MILL, WireMillBlockEntity::new)),
GREENHOUSE_CONTROLLER(new GenericMachineBlock(EGui.GREENHOUSE_CONTROLLER, GreenhouseControllerBlockEntity::new)),
DIESEL_GENERATOR(new GenericGeneratorBlock(EGui.DIESEL_GENERATOR, DieselGeneratorBlockEntity::new)),
DRAGON_EGG_SYPHON(new GenericGeneratorBlock(null, DragonEggSyphonBlockEntity::new)),
FUSION_COIL(new BlockFusionCoil()),
@ -523,13 +533,13 @@ public class TRContent {
MV_TRANSFORMER(new BlockMVTransformer()),
HV_TRANSFORMER(new BlockHVTransformer()),
EV_TRANSFORMER(new BlockEVTransformer()),
ALARM(new BlockAlarm()),
CHUNK_LOADER(new GenericMachineBlock(EGui.CHUNK_LOADER, ChunkLoaderBlockEntity::new)),
LAMP_INCANDESCENT(new BlockLamp(4, 10, 8)),
LAMP_LED(new BlockLamp(1, 1, 12)),
PLAYER_DETECTOR(new BlockPlayerDetector());
public final String name;
public final Block block;
@ -538,17 +548,17 @@ public class TRContent {
this.block = block;
InitUtils.setup(block, name);
}
public ItemStack getStack() {
return new ItemStack(block);
}
@Override
public Item asItem() {
return block.asItem();
}
}
public enum Dusts implements ItemConvertible {
ALMANDINE, ALUMINUM, ANDESITE, ANDRADITE, ASHES, BASALT, BAUXITE, BRASS, BRONZE, CALCITE, CHARCOAL, CHROME,
CINNABAR, CLAY, COAL, COPPER, DARK_ASHES, DIAMOND, DIORITE, ELECTRUM, EMERALD, ENDER_EYE, ENDER_PEARL, ENDSTONE,
@ -718,13 +728,13 @@ public class TRContent {
NEUTRON_REFLECTOR,
THICK_NEUTRON_REFLECTOR,
IRIDIUM_NEUTRON_REFLECTOR
IRIDIUM_NEUTRON_REFLECTOR,
//java vars can't start with numbers, so these get suffixes
, WATER_COOLANT_CELL_10K,
WATER_COOLANT_CELL_10K,
WATER_COOLANT_CELL_30K,
WATER_COOLANT_CELL_60K,
HELIUM_COOLANT_CELL_60K,
HELIUM_COOLANT_CELL_180K,
HELIUM_COOLANT_CELL_360K,
@ -738,7 +748,9 @@ public class TRContent {
SCRAP,
UU_MATTER,
PLANTBALL,
COMPRESSED_PLANTBALL;
COMPRESSED_PLANTBALL,
SYNTHETIC_REDSTONE_CRYSTAL;
public final String name;
public final Item item;
@ -847,6 +859,6 @@ public class TRContent {
return item;
}
}
public static EntityType<EntityNukePrimed> ENTITY_NUKE;
}

View file

@ -34,6 +34,7 @@ import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.collection.DefaultedList;
import net.minecraft.util.Identifier;
import net.minecraft.world.World;
import reborncore.common.powerSystem.PowerSystem;
import reborncore.common.util.ItemDurabilityExtensions;
@ -53,6 +54,13 @@ public class BatpackItem extends ArmorItem implements EnergyHolder, ItemDurabili
super(material, EquipmentSlot.CHEST, new Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamage(-1));
this.maxCharge = maxCharge;
this.tier = tier;
this.addPropertyGetter(new Identifier("techreborn:empty"), (stack, worldIn, entityIn) -> {
if (!stack.isEmpty() && Energy.of(stack).getEnergy() == 0) {
return 1.0F;
}
return 0.0F;
});
}
private void distributePowerToInventory(World world, PlayerEntity player, ItemStack itemStack, int maxOutput) {

View file

@ -181,7 +181,7 @@ public class NanosaberItem extends SwordItem implements EnergyHolder, ItemDurabi
attributes.removeAll(EntityAttributes.ATTACK_SPEED.getId());
if (slot== EquipmentSlot.MAINHAND && ItemUtils.isActive(stack)) {
attributes.put(EntityAttributes.ATTACK_DAMAGE.getId(), new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_UUID, "Weapon modifier", 12, EntityAttributeModifier.Operation.ADDITION));
attributes.put(EntityAttributes.ATTACK_DAMAGE.getId(), new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_UUID, "Weapon modifier", TechRebornConfig.nanosaberDamage, EntityAttributeModifier.Operation.ADDITION));
attributes.put(EntityAttributes.ATTACK_SPEED.getId(), new EntityAttributeModifier(ATTACK_SPEED_MODIFIER_UUID, "Weapon modifier", 3, EntityAttributeModifier.Operation.ADDITION));
}
}

View file

@ -45,6 +45,7 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
import reborncore.common.world.CustomOreFeature;
import reborncore.common.world.CustomOreFeatureConfig;
import techreborn.blocks.misc.BlockRubberLog;
import techreborn.config.TechRebornConfig;
import techreborn.init.TRContent;
import java.util.ArrayList;
@ -108,25 +109,56 @@ public class WorldGenerator {
checkedBiomes.add(biome);
if (biome.getCategory() == Category.NETHER) {
addOre(biome, OreFeatureConfig.Target.NETHERRACK, TRContent.Ores.CINNABAR);
addOre(biome, OreFeatureConfig.Target.NETHERRACK, TRContent.Ores.PYRITE);
addOre(biome, OreFeatureConfig.Target.NETHERRACK, TRContent.Ores.SPHALERITE);
if (TechRebornConfig.enableCinnabarOre){
addOre(biome, OreFeatureConfig.Target.NETHERRACK, TRContent.Ores.CINNABAR);
}
if (TechRebornConfig.enablePyriteOre){
addOre(biome, OreFeatureConfig.Target.NETHERRACK, TRContent.Ores.PYRITE);
}
if (TechRebornConfig.enableSphaleriteOre){
addOre(biome, OreFeatureConfig.Target.NETHERRACK, TRContent.Ores.SPHALERITE);
}
} else if (biome.getCategory() == Category.THEEND) {
addEndOre(biome, TRContent.Ores.PERIDOT);
addEndOre(biome, TRContent.Ores.SHELDONITE);
addEndOre(biome, TRContent.Ores.SODALITE);
addEndOre(biome, TRContent.Ores.TUNGSTEN);
if (TechRebornConfig.enableSphaleriteOre){
addEndOre(biome, TRContent.Ores.PERIDOT);
}
if (TechRebornConfig.enableSheldoniteOre){
addEndOre(biome, TRContent.Ores.SHELDONITE);
}
if (TechRebornConfig.enableSodaliteOre){
addEndOre(biome, TRContent.Ores.SODALITE);
}
if (TechRebornConfig.enableTungstenOre){
addEndOre(biome, TRContent.Ores.TUNGSTEN);
}
} else {
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.BAUXITE);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.COPPER);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.GALENA);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.IRIDIUM);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.LEAD);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.RUBY);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.SAPPHIRE);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.SILVER);
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.TIN);
if (TechRebornConfig.enableBauxiteOre){
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.BAUXITE);
}
if (TechRebornConfig.enableBauxiteOre){
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.COPPER);
}
if (TechRebornConfig.enableGalenaOre){
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.GALENA);
}
if (TechRebornConfig.enableIridiumOre){
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.IRIDIUM);
}
if (TechRebornConfig.enableLeadOre){
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.LEAD);
}
if (TechRebornConfig.enableRubyOre){
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.RUBY);
}
if (TechRebornConfig.enableSapphireOre) {
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.SAPPHIRE);
}
if (TechRebornConfig.enableSilverOre) {
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.SILVER);
}
if (TechRebornConfig.enableTinOre) {
addOre(biome, OreFeatureConfig.Target.NATURAL_STONE, TRContent.Ores.TIN);
}
if (biome.getCategory() == Category.FOREST || biome.getCategory() == Category.TAIGA || biome.getCategory() == Category.SWAMP) {
biome.addFeature(GenerationStep.Feature.VEGETAL_DECORATION,