Merge remote-tracking branch 'remotes/origin/1.14' into 1.15
# Conflicts: # build.gradle # src/main/java/techreborn/client/render/DynamicBucketBakedModel.java # src/main/java/techreborn/client/render/DynamicCellBakedModel.java
This commit is contained in:
commit
2d8961589d
219 changed files with 2205 additions and 1634 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -27,4 +27,6 @@ java_pid2412.hprof
|
||||||
/classes/
|
/classes/
|
||||||
/gradle.properties
|
/gradle.properties
|
||||||
/buildSrc/.gradle/
|
/buildSrc/.gradle/
|
||||||
/buildSrc/build/
|
/buildSrc/build/
|
||||||
|
/src/main/resources/package-lock.json
|
||||||
|
/src/main/resources/node_modules/
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[![](http://cf.way2muchnoise.eu/full_233564_downloads.svg)](https://minecraft.curseforge.com/projects/techreborn) [![](http://cf.way2muchnoise.eu/packs/233564.svg)](https://minecraft.curseforge.com/projects/techreborn) [![](http://cf.way2muchnoise.eu/versions/233564.svg)](https://minecraft.curseforge.com/projects/techreborn) [![](https://img.shields.io/badge/Discord-TeamReborn-738bd7.svg)](https://discord.gg/teamreborn) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/techreborn/localized.svg)](https://translate.techreborn.ovh/project/techreborn)
|
[![](http://cf.way2muchnoise.eu/full_233564_downloads.svg)](https://minecraft.curseforge.com/projects/techreborn) [![](http://cf.way2muchnoise.eu/packs/233564.svg)](https://minecraft.curseforge.com/projects/techreborn) [![](http://cf.way2muchnoise.eu/versions/233564.svg)](https://minecraft.curseforge.com/projects/techreborn) [![](https://img.shields.io/badge/Discord-TeamReborn-738bd7.svg)](https://discord.gg/teamreborn) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/techreborn/localized.svg)](https://translate.techreborn.ovh/project/techreborn)
|
||||||
|
|
||||||
# Tech Reborn for 1.13.1 (BUILD JOBS WILL NEED UPDATING) [![Build Status](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/badge/icon)](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/)
|
# Tech Reborn for 1.14.4 [![Build Status](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/badge/icon)](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/)
|
||||||
|
|
||||||
*Tech Reborn is a completely standalone tech mod including tools and machines to gather resources, process materials, and progress through the mod.*
|
*Tech Reborn is a completely standalone tech mod including tools and machines to gather resources, process materials, and progress through the mod.*
|
||||||
|
|
||||||
|
@ -21,12 +21,18 @@ Versions we determine are stable enough can always be found on our CurseForge pa
|
||||||
|
|
||||||
If you're looking for the latest bleeding edge build, these are found on our Jenkins page. Use these with caution, and please do not put these in modpacks:
|
If you're looking for the latest bleeding edge build, these are found on our Jenkins page. Use these with caution, and please do not put these in modpacks:
|
||||||
|
|
||||||
|
1.15 * - [![Build Status](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.15/badge/icon)](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.15/)
|
||||||
|
|
||||||
|
1.14.4 - [![Build Status](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.14/badge/icon)](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.14/)
|
||||||
|
|
||||||
1.12.2 - [![Build Status](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/badge/icon)](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/)
|
1.12.2 - [![Build Status](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/badge/icon)](https://jenkins.modmuss50.me/job/Team%20Reborn/job/TechReborn/job/1.12/)
|
||||||
|
|
||||||
1.11.2 - [![Build Status](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.11.2/badge/icon)](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.11.2/)
|
1.11.2 - [![Build Status](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.11.2/badge/icon)](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.11.2/)
|
||||||
|
|
||||||
1.10.2 - [![Build Status](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.10.2/badge/icon)](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.10.2/)
|
1.10.2 - [![Build Status](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.10.2/badge/icon)](https://jenkins.modmuss50.me/job/TeamReborn/job/TechReborn/job/TechReborn-1.10.2/)
|
||||||
|
|
||||||
|
* 1.15 versions are for snapshots, and may not always be upto date with the latest 1.15 snapshots.
|
||||||
|
|
||||||
# Issues and Suggestions
|
# Issues and Suggestions
|
||||||
|
|
||||||
To report an issue or make a suggestion, please head up to the `Issues` tab up above, and open a new issue. You will need a GitHub account for this (it's free!). **It is very important that you include the version of Tech Reborn you are using in your issue report.**
|
To report an issue or make a suggestion, please head up to the `Issues` tab up above, and open a new issue. You will need a GitHub account for this (it's free!). **It is very important that you include the version of Tech Reborn you are using in your issue report.**
|
||||||
|
|
13
build.gradle
13
build.gradle
|
@ -48,7 +48,7 @@ repositories {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
version = "3.0.13"
|
version = "3.0.14"
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
shade
|
shade
|
||||||
|
@ -56,9 +56,8 @@ configurations {
|
||||||
}
|
}
|
||||||
|
|
||||||
def ENV = System.getenv()
|
def ENV = System.getenv()
|
||||||
if (ENV.BUILD_NUMBER) {
|
def build_number = ENV.BUILD_NUMBER ?: "local"
|
||||||
version = version + "." + "${System.getenv().BUILD_NUMBER}"
|
version = "${version}+build.$build_number"
|
||||||
}
|
|
||||||
|
|
||||||
license {
|
license {
|
||||||
header file('HEADER')
|
header file('HEADER')
|
||||||
|
@ -89,13 +88,17 @@ dependencies {
|
||||||
transitive = false
|
transitive = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compile 'org.checkerframework:checker-qual:2.10.0'
|
||||||
compile 'org.spongepowered:configurate-hocon:3.6'
|
compile 'org.spongepowered:configurate-hocon:3.6'
|
||||||
|
|
||||||
compile 'org.checkerframework:checker-qual:2.10.0'
|
compile 'org.checkerframework:checker-qual:2.10.0'
|
||||||
compileOnly "com.google.code.findbugs:jsr305:+"
|
compileOnly "com.google.code.findbugs:jsr305:+"
|
||||||
|
|
||||||
modCompileOnly ('com.github.Virtuoel:Towelette:519538e54b') {
|
modCompileOnly ('com.github.Virtuoel:Towelette:519538e54b') {
|
||||||
transitive = false
|
transitive = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compile 'teamreborn:energy:0.0.7'
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
|
@ -115,7 +118,7 @@ jar {
|
||||||
exclude "**/*.psd"
|
exclude "**/*.psd"
|
||||||
classifier = 'universal'
|
classifier = 'universal'
|
||||||
|
|
||||||
from { crowdin.getDidWork() ? fileTree('build/translations').matching{exclude "**/en_US.lang"} : null}
|
from { crowdin.getDidWork() ? fileTree('build/translations').matching{exclude "**/en_US.json"} : null}
|
||||||
dependsOn 'renameCrowdin'
|
dependsOn 'renameCrowdin'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import reborncore.api.power.ItemPowerHolder;
|
||||||
import reborncore.common.config.Configuration;
|
import reborncore.common.config.Configuration;
|
||||||
import reborncore.common.recipes.RecipeCrafter;
|
import reborncore.common.recipes.RecipeCrafter;
|
||||||
import reborncore.common.util.Torus;
|
import reborncore.common.util.Torus;
|
||||||
|
@ -61,6 +62,7 @@ public class TechReborn implements ModInitializer {
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
new Configuration(TechRebornConfig.class, "techreborn");
|
new Configuration(TechRebornConfig.class, "techreborn");
|
||||||
|
|
||||||
|
ItemPowerHolder.setup();
|
||||||
|
|
||||||
// Done to force the class to load
|
// Done to force the class to load
|
||||||
ModRecipes.GRINDER.getName();
|
ModRecipes.GRINDER.getName();
|
||||||
|
|
|
@ -102,7 +102,7 @@ public class TechRebornClient implements ClientModInitializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BakedModel bake(ModelLoader modelLoader, Function<Identifier, Sprite> function, ModelBakeSettings modelBakeSettings) {
|
public BakedModel bake(ModelLoader modelLoader, Function<Identifier, Sprite> function, ModelBakeSettings modelBakeSettings) {
|
||||||
return new DynamicBucketBakedModel(fluid);
|
return new DynamicBucketBakedModel();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,10 +37,13 @@ import net.minecraft.util.Tickable;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import reborncore.api.IListInfoProvider;
|
import reborncore.api.IListInfoProvider;
|
||||||
import reborncore.api.IToolDrop;
|
import reborncore.api.IToolDrop;
|
||||||
import reborncore.api.power.EnergyBlockEntity;
|
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.StringUtils;
|
import reborncore.common.util.StringUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyStorage;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.blocks.cable.BlockCable;
|
import techreborn.blocks.cable.BlockCable;
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
|
@ -54,7 +57,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class CableBlockEntity extends BlockEntity
|
public class CableBlockEntity extends BlockEntity
|
||||||
implements Tickable, IListInfoProvider, IToolDrop, EnergyBlockEntity {
|
implements Tickable, IListInfoProvider, IToolDrop, EnergyStorage {
|
||||||
|
|
||||||
private double energy = 0;
|
private double energy = 0;
|
||||||
private int transferRate = 0;
|
private int transferRate = 0;
|
||||||
|
@ -124,21 +127,17 @@ public class CableBlockEntity extends BlockEntity
|
||||||
ticksSinceLastChange = 0;
|
ticksSinceLastChange = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<EnergyBlockEntity> acceptors = new ArrayList<EnergyBlockEntity>();
|
ArrayList<BlockEntity> acceptors = new ArrayList<BlockEntity>();
|
||||||
for (Direction face : Direction.values()) {
|
for (Direction face : Direction.values()) {
|
||||||
BlockEntity blockEntity = world.getBlockEntity(pos.offset(face));
|
BlockEntity blockEntity = world.getBlockEntity(pos.offset(face));
|
||||||
|
|
||||||
if (blockEntity == null) {
|
if (blockEntity == null) {
|
||||||
continue;
|
continue;
|
||||||
} else if (blockEntity instanceof EnergyBlockEntity) {
|
} else if (Energy.valid(blockEntity)) {
|
||||||
EnergyBlockEntity acceptor = (EnergyBlockEntity) blockEntity;
|
if (blockEntity instanceof CableBlockEntity && energy <= Energy.of(blockEntity).side(EnergySide.fromMinecraft(face)).getEnergy()) {
|
||||||
if (blockEntity instanceof CableBlockEntity && energy <= acceptor.getEnergy()) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!acceptor.canAcceptEnergy(face.getOpposite())) {
|
acceptors.add(blockEntity);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
acceptors.add(acceptor);
|
|
||||||
if (!sendingFace.contains(face)) {
|
if (!sendingFace.contains(face)) {
|
||||||
sendingFace.add(face);
|
sendingFace.add(face);
|
||||||
}
|
}
|
||||||
|
@ -149,13 +148,9 @@ public class CableBlockEntity extends BlockEntity
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Collections.shuffle(acceptors);
|
Collections.shuffle(acceptors);
|
||||||
acceptors.forEach(blockEntity -> {
|
acceptors.forEach(blockEntity -> Energy.of(this)
|
||||||
double drain = Math.min(energy, transferRate);
|
.into(Energy.of(blockEntity))
|
||||||
if (drain > 0 && blockEntity.addEnergy(drain, true) > 0) {
|
.move());
|
||||||
double move = blockEntity.addEnergy(drain, false);
|
|
||||||
useEnergy(move, false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// IListInfoProvider
|
// IListInfoProvider
|
||||||
|
@ -176,52 +171,15 @@ public class CableBlockEntity extends BlockEntity
|
||||||
return new ItemStack(getCableType().block);
|
return new ItemStack(getCableType().block);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getEnergy() {
|
public double getEnergy() {
|
||||||
return energy;
|
return getStored(EnergySide.UNKNOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setEnergy(double energy) {
|
public void setEnergy(double energy) {
|
||||||
this.energy = energy;
|
setStored(energy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getMaxPower() {
|
|
||||||
return transferRate * 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canAddEnergy(double energyIn) {
|
|
||||||
return getEnergy() + energyIn <= getMaxPower();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double addEnergy(double energy) {
|
|
||||||
return addEnergy(energy, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double addEnergy(double energyIn, boolean simulate) {
|
|
||||||
double energyReceived = Math.min(getMaxPower(), Math.min(getMaxPower() - getEnergy(), energyIn));
|
|
||||||
|
|
||||||
if (!simulate) {
|
|
||||||
setEnergy(getEnergy() + energyReceived);
|
|
||||||
}
|
|
||||||
return energyReceived;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canUseEnergy(double energy) {
|
|
||||||
return this.energy >= energy;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double useEnergy(double energy) {
|
|
||||||
return useEnergy(energy, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double useEnergy(double energyOut, boolean simulate) {
|
public double useEnergy(double energyOut, boolean simulate) {
|
||||||
if (energyOut > energy) {
|
if (energyOut > energy) {
|
||||||
energyOut = energy;
|
energyOut = energy;
|
||||||
|
@ -232,31 +190,40 @@ public class CableBlockEntity extends BlockEntity
|
||||||
return energyOut;
|
return energyOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canAcceptEnergy(Direction direction) {
|
public boolean canAcceptEnergy(Direction direction) {
|
||||||
if (sendingFace.contains(direction)) {
|
if (sendingFace.contains(direction)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return getMaxPower() != getEnergy();
|
return getMaxStoredPower() != getEnergy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canProvideEnergy(Direction direction) {
|
public double getMaxInput(EnergySide side) {
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getMaxOutput() {
|
|
||||||
return transferRate;
|
return transferRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getMaxInput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return transferRate;
|
return transferRate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumPowerTier getTier() {
|
public double getMaxStoredPower() {
|
||||||
return EnumPowerTier.getTier(cableType.transferRate);
|
return transferRate * 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnergyTier getTier() {
|
||||||
|
return PowerAcceptorBlockEntity.getTier(cableType.transferRate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getStored(EnergySide face) {
|
||||||
|
return energy;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStored(double amount) {
|
||||||
|
this.energy = amount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,11 +32,11 @@ import org.apache.commons.lang3.Validate;
|
||||||
import reborncore.api.IToolDrop;
|
import reborncore.api.IToolDrop;
|
||||||
import reborncore.api.blockentity.InventoryProvider;
|
import reborncore.api.blockentity.InventoryProvider;
|
||||||
import reborncore.common.blocks.BlockMachineBase;
|
import reborncore.common.blocks.BlockMachineBase;
|
||||||
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import reborncore.common.fluid.container.ItemFluidInfo;
|
import reborncore.common.fluid.container.ItemFluidInfo;
|
||||||
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
||||||
import reborncore.common.util.RebornInventory;
|
import reborncore.common.util.RebornInventory;
|
||||||
import reborncore.common.util.Tank;
|
import reborncore.common.util.Tank;
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
|
||||||
import techreborn.api.generator.EFluidGenerator;
|
import techreborn.api.generator.EFluidGenerator;
|
||||||
import techreborn.api.generator.FluidGeneratorRecipe;
|
import techreborn.api.generator.FluidGeneratorRecipe;
|
||||||
import techreborn.api.generator.FluidGeneratorRecipeList;
|
import techreborn.api.generator.FluidGeneratorRecipeList;
|
||||||
|
|
|
@ -24,24 +24,24 @@
|
||||||
|
|
||||||
package techreborn.blockentity.generator;
|
package techreborn.blockentity.generator;
|
||||||
|
|
||||||
import net.minecraft.text.LiteralText;
|
|
||||||
import net.minecraft.util.Formatting;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.text.LiteralText;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import reborncore.api.IToolDrop;
|
import reborncore.api.IToolDrop;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
|
||||||
import reborncore.common.blocks.BlockMachineBase;
|
import reborncore.common.blocks.BlockMachineBase;
|
||||||
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
||||||
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.StringUtils;
|
import reborncore.common.util.StringUtils;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.blocks.generator.BlockSolarPanel;
|
import techreborn.blocks.generator.BlockSolarPanel;
|
||||||
|
import techreborn.init.TRBlockEntities;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.init.TRContent.SolarPanels;
|
import techreborn.init.TRContent.SolarPanels;
|
||||||
import techreborn.init.TRBlockEntities;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
|
|
||||||
boolean canSeeSky = false;
|
boolean canSeeSky = false;
|
||||||
boolean lastState = false;
|
boolean lastState = false;
|
||||||
SolarPanels panel;
|
private SolarPanels panel;
|
||||||
|
|
||||||
public SolarPanelBlockEntity() {
|
public SolarPanelBlockEntity() {
|
||||||
super(TRBlockEntities.SOLAR_PANEL);
|
super(TRBlockEntities.SOLAR_PANEL);
|
||||||
|
@ -77,7 +77,7 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
if (world.isClient) {
|
if (world.isClient) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (panel == TRContent.SolarPanels.CREATIVE) {
|
if (getPanel() == TRContent.SolarPanels.CREATIVE) {
|
||||||
checkOverfill = false;
|
checkOverfill = false;
|
||||||
setEnergy(Integer.MAX_VALUE);
|
setEnergy(Integer.MAX_VALUE);
|
||||||
return;
|
return;
|
||||||
|
@ -91,9 +91,9 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
}
|
}
|
||||||
int powerToAdd;
|
int powerToAdd;
|
||||||
if (isSunOut()) {
|
if (isSunOut()) {
|
||||||
powerToAdd = panel.generationRateD;
|
powerToAdd = getPanel().generationRateD;
|
||||||
} else if (canSeeSky) {
|
} else if (canSeeSky) {
|
||||||
powerToAdd = panel.generationRateN;
|
powerToAdd = getPanel().generationRateN;
|
||||||
} else {
|
} else {
|
||||||
powerToAdd = 0;
|
powerToAdd = 0;
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getBaseMaxPower() {
|
public double getBaseMaxPower() {
|
||||||
return panel.internalCapacity;
|
return getPanel().internalCapacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -118,7 +118,7 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getBaseMaxOutput() {
|
public double getBaseMaxOutput() {
|
||||||
return panel.generationRateD;
|
return getPanel().generationRateD;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -127,8 +127,8 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumPowerTier getTier() {
|
public EnergyTier getTier() {
|
||||||
return panel.powerTier;
|
return getPanel().powerTier;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -136,6 +136,13 @@ public class SolarPanelBlockEntity extends PowerAcceptorBlockEntity implements I
|
||||||
// Nope
|
// Nope
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SolarPanels getPanel() {
|
||||||
|
if(panel == null){
|
||||||
|
updatePanel();
|
||||||
|
}
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInfo(List<Text> info, boolean isReal, boolean hasData) {
|
public void addInfo(List<Text> info, boolean isReal, boolean hasData) {
|
||||||
info.add(new LiteralText(Formatting.GRAY + StringUtils.t("reborncore.tooltip.energy.maxEnergy") + ": "
|
info.add(new LiteralText(Formatting.GRAY + StringUtils.t("reborncore.tooltip.energy.maxEnergy") + ": "
|
||||||
|
|
|
@ -77,6 +77,7 @@ public class SolidFuelGeneratorBlockEntity extends PowerAcceptorBlockEntity impl
|
||||||
if (world.isClient) {
|
if (world.isClient) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
discharge(1);
|
||||||
if (getEnergy() < getMaxPower()) {
|
if (getEnergy() < getMaxPower()) {
|
||||||
if (burnTime > 0) {
|
if (burnTime > 0) {
|
||||||
burnTime--;
|
burnTime--;
|
||||||
|
@ -85,6 +86,7 @@ public class SolidFuelGeneratorBlockEntity extends PowerAcceptorBlockEntity impl
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
isBurning = false;
|
isBurning = false;
|
||||||
|
updateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (burnTime == 0) {
|
if (burnTime == 0) {
|
||||||
|
@ -113,8 +115,9 @@ public class SolidFuelGeneratorBlockEntity extends PowerAcceptorBlockEntity impl
|
||||||
final BlockState BlockStateContainer = world.getBlockState(pos);
|
final BlockState BlockStateContainer = world.getBlockState(pos);
|
||||||
if (BlockStateContainer.getBlock() instanceof BlockMachineBase) {
|
if (BlockStateContainer.getBlock() instanceof BlockMachineBase) {
|
||||||
final BlockMachineBase blockMachineBase = (BlockMachineBase) BlockStateContainer.getBlock();
|
final BlockMachineBase blockMachineBase = (BlockMachineBase) BlockStateContainer.getBlock();
|
||||||
if (BlockStateContainer.get(BlockMachineBase.ACTIVE) != burnTime > 0) {
|
boolean active = burnTime > 0 && getEnergy() < getMaxPower();
|
||||||
blockMachineBase.setActive(burnTime > 0, world, pos);
|
if (BlockStateContainer.get(BlockMachineBase.ACTIVE) != active) {
|
||||||
|
blockMachineBase.setActive(active, world, pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,6 +71,10 @@ public class LampBlockEntity extends PowerAcceptorBlockEntity
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canAcceptEnergy(final Direction direction) {
|
public boolean canAcceptEnergy(final Direction direction) {
|
||||||
|
if (world == null) {
|
||||||
|
// Blame tooltip for this
|
||||||
|
return true;
|
||||||
|
}
|
||||||
Direction me = BlockLamp.getFacing(world.getBlockState(pos)).getOpposite();
|
Direction me = BlockLamp.getFacing(world.getBlockState(pos)).getOpposite();
|
||||||
return direction == me;
|
return direction == me;
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,7 +132,7 @@ public class RollingMachineBlockEntity extends PowerAcceptorBlockEntity
|
||||||
if (!currentRecipeOutput.isEmpty()) {
|
if (!currentRecipeOutput.isEmpty()) {
|
||||||
boolean hasCrafted = false;
|
boolean hasCrafted = false;
|
||||||
if (inventory.getInvStack(outputSlot).isEmpty()) {
|
if (inventory.getInvStack(outputSlot).isEmpty()) {
|
||||||
inventory.setInvStack(outputSlot, currentRecipeOutput);
|
inventory.setInvStack(outputSlot, currentRecipeOutput.copy());
|
||||||
tickTime = 0;
|
tickTime = 0;
|
||||||
hasCrafted = true;
|
hasCrafted = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,15 +27,16 @@ package techreborn.blockentity.storage;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.api.blockentity.IUpgrade;
|
import reborncore.api.blockentity.IUpgrade;
|
||||||
import reborncore.client.containerBuilder.IContainerProvider;
|
import reborncore.client.containerBuilder.IContainerProvider;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||||
import reborncore.common.util.RebornInventory;
|
import reborncore.common.util.RebornInventory;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
public class AdjustableSUBlockEntity extends EnergyStorageBlockEntity implements IContainerProvider {
|
public class AdjustableSUBlockEntity extends EnergyStorageBlockEntity implements IContainerProvider {
|
||||||
|
|
||||||
|
@ -44,7 +45,7 @@ public class AdjustableSUBlockEntity extends EnergyStorageBlockEntity implements
|
||||||
public int superconductors = 0;
|
public int superconductors = 0;
|
||||||
|
|
||||||
public AdjustableSUBlockEntity() {
|
public AdjustableSUBlockEntity() {
|
||||||
super(TRBlockEntities.ADJUSTABLE_SU, "ADJUSTABLE_SU", 4, TRContent.Machine.ADJUSTABLE_SU.block, EnumPowerTier.INSANE, TechRebornConfig.aesuMaxInput, TechRebornConfig.aesuMaxOutput, TechRebornConfig.aesuMaxEnergy);
|
super(TRBlockEntities.ADJUSTABLE_SU, "ADJUSTABLE_SU", 4, TRContent.Machine.ADJUSTABLE_SU.block, EnergyTier.INSANE, TechRebornConfig.aesuMaxInput, TechRebornConfig.aesuMaxOutput, TechRebornConfig.aesuMaxEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -120,7 +121,7 @@ public class AdjustableSUBlockEntity extends EnergyStorageBlockEntity implements
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return OUTPUT;
|
return OUTPUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,11 +30,11 @@ import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import reborncore.api.IToolDrop;
|
import reborncore.api.IToolDrop;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.api.blockentity.InventoryProvider;
|
import reborncore.api.blockentity.InventoryProvider;
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
||||||
import reborncore.common.util.RebornInventory;
|
import reborncore.common.util.RebornInventory;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.blocks.storage.BlockEnergyStorage;
|
import techreborn.blocks.storage.BlockEnergyStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,12 +46,12 @@ public class EnergyStorageBlockEntity extends PowerAcceptorBlockEntity
|
||||||
public RebornInventory<EnergyStorageBlockEntity> inventory;
|
public RebornInventory<EnergyStorageBlockEntity> inventory;
|
||||||
public String name;
|
public String name;
|
||||||
public Block wrenchDrop;
|
public Block wrenchDrop;
|
||||||
public EnumPowerTier tier;
|
public EnergyTier tier;
|
||||||
public int maxInput;
|
public int maxInput;
|
||||||
public int maxOutput;
|
public int maxOutput;
|
||||||
public int maxStorage;
|
public int maxStorage;
|
||||||
|
|
||||||
public EnergyStorageBlockEntity(BlockEntityType<?> blockEntityType, String name, int invSize, Block wrenchDrop, EnumPowerTier tier, int maxInput, int maxOuput, int maxStorage) {
|
public EnergyStorageBlockEntity(BlockEntityType<?> blockEntityType, String name, int invSize, Block wrenchDrop, EnergyTier tier, int maxInput, int maxOuput, int maxStorage) {
|
||||||
super(blockEntityType);
|
super(blockEntityType);
|
||||||
inventory = new RebornInventory<>(invSize, name + "BlockEntity", 64, this);
|
inventory = new RebornInventory<>(invSize, name + "BlockEntity", 64, this);
|
||||||
this.wrenchDrop = wrenchDrop;
|
this.wrenchDrop = wrenchDrop;
|
||||||
|
@ -90,7 +90,7 @@ public class EnergyStorageBlockEntity extends PowerAcceptorBlockEntity
|
||||||
public boolean canAcceptEnergy(Direction direction) {
|
public boolean canAcceptEnergy(Direction direction) {
|
||||||
return getFacing() != direction;
|
return getFacing() != direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canProvideEnergy(Direction direction) {
|
public boolean canProvideEnergy(Direction direction) {
|
||||||
return getFacing() == direction;
|
return getFacing() == direction;
|
||||||
|
@ -114,6 +114,9 @@ public class EnergyStorageBlockEntity extends PowerAcceptorBlockEntity
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Direction getFacingEnum() {
|
public Direction getFacingEnum() {
|
||||||
|
if(world == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
Block block = world.getBlockState(pos).getBlock();
|
Block block = world.getBlockState(pos).getBlock();
|
||||||
if (block instanceof BlockEnergyStorage) {
|
if (block instanceof BlockEnergyStorage) {
|
||||||
return ((BlockEnergyStorage) block).getFacing(world.getBlockState(pos));
|
return ((BlockEnergyStorage) block).getFacing(world.getBlockState(pos));
|
||||||
|
|
|
@ -25,12 +25,12 @@
|
||||||
package techreborn.blockentity.storage;
|
package techreborn.blockentity.storage;
|
||||||
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.client.containerBuilder.IContainerProvider;
|
import reborncore.client.containerBuilder.IContainerProvider;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||||
import techreborn.init.TRContent;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 14/03/2016.
|
* Created by modmuss50 on 14/03/2016.
|
||||||
|
@ -42,7 +42,7 @@ public class HighVoltageSUBlockEntity extends EnergyStorageBlockEntity implement
|
||||||
* MFSU should store 40M FE with 2048 FE/t I/O
|
* MFSU should store 40M FE with 2048 FE/t I/O
|
||||||
*/
|
*/
|
||||||
public HighVoltageSUBlockEntity() {
|
public HighVoltageSUBlockEntity() {
|
||||||
super(TRBlockEntities.HIGH_VOLTAGE_SU, "HIGH_VOLTAGE_SU", 2, TRContent.Machine.HIGH_VOLTAGE_SU.block, EnumPowerTier.HIGH, 512, 512, 10_000_000);
|
super(TRBlockEntities.HIGH_VOLTAGE_SU, "HIGH_VOLTAGE_SU", 2, TRContent.Machine.HIGH_VOLTAGE_SU.block, EnergyTier.HIGH, 512, 512, 10_000_000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -25,12 +25,12 @@
|
||||||
package techreborn.blockentity.storage;
|
package techreborn.blockentity.storage;
|
||||||
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.client.containerBuilder.IContainerProvider;
|
import reborncore.client.containerBuilder.IContainerProvider;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||||
import techreborn.init.TRContent;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 14/03/2016.
|
* Created by modmuss50 on 14/03/2016.
|
||||||
|
@ -38,7 +38,7 @@ import techreborn.init.TRBlockEntities;
|
||||||
public class LowVoltageSUBlockEntity extends EnergyStorageBlockEntity implements IContainerProvider {
|
public class LowVoltageSUBlockEntity extends EnergyStorageBlockEntity implements IContainerProvider {
|
||||||
|
|
||||||
public LowVoltageSUBlockEntity() {
|
public LowVoltageSUBlockEntity() {
|
||||||
super(TRBlockEntities.LOW_VOLTAGE_SU, "BatBox", 2, TRContent.Machine.LOW_VOLTAGE_SU.block, EnumPowerTier.LOW, 32, 32, 40000);
|
super(TRBlockEntities.LOW_VOLTAGE_SU, "BatBox", 2, TRContent.Machine.LOW_VOLTAGE_SU.block, EnergyTier.LOW, 32, 32, 40000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -25,12 +25,12 @@
|
||||||
package techreborn.blockentity.storage;
|
package techreborn.blockentity.storage;
|
||||||
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.client.containerBuilder.IContainerProvider;
|
import reborncore.client.containerBuilder.IContainerProvider;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||||
import techreborn.init.TRContent;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 14/03/2016.
|
* Created by modmuss50 on 14/03/2016.
|
||||||
|
@ -42,7 +42,7 @@ public class MediumVoltageSUBlockEntity extends EnergyStorageBlockEntity impleme
|
||||||
* MFE should store 1.2M FE with 512 FE/t I/O
|
* MFE should store 1.2M FE with 512 FE/t I/O
|
||||||
*/
|
*/
|
||||||
public MediumVoltageSUBlockEntity() {
|
public MediumVoltageSUBlockEntity() {
|
||||||
super(TRBlockEntities.MEDIUM_VOLTAGE_SU, "MEDIUM_VOLTAGE_SU", 2, TRContent.Machine.MEDIUM_VOLTAGE_SU.block, EnumPowerTier.MEDIUM, 128, 128, 300000);
|
super(TRBlockEntities.MEDIUM_VOLTAGE_SU, "MEDIUM_VOLTAGE_SU", 2, TRContent.Machine.MEDIUM_VOLTAGE_SU.block, EnergyTier.MEDIUM, 128, 128, 300000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -27,14 +27,14 @@ package techreborn.blockentity.storage.idsu;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.client.containerBuilder.IContainerProvider;
|
import reborncore.client.containerBuilder.IContainerProvider;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||||
import techreborn.config.TechRebornConfig;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRContent;
|
|
||||||
import techreborn.init.TRBlockEntities;
|
|
||||||
import techreborn.blockentity.storage.EnergyStorageBlockEntity;
|
import techreborn.blockentity.storage.EnergyStorageBlockEntity;
|
||||||
|
import techreborn.config.TechRebornConfig;
|
||||||
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
public class InterdimensionalSUBlockEntity extends EnergyStorageBlockEntity implements IContainerProvider {
|
public class InterdimensionalSUBlockEntity extends EnergyStorageBlockEntity implements IContainerProvider {
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ public class InterdimensionalSUBlockEntity extends EnergyStorageBlockEntity impl
|
||||||
private double clientEnergy;
|
private double clientEnergy;
|
||||||
|
|
||||||
public InterdimensionalSUBlockEntity() {
|
public InterdimensionalSUBlockEntity() {
|
||||||
super(TRBlockEntities.INTERDIMENSIONAL_SU, "IDSU", 2, TRContent.Machine.INTERDIMENSIONAL_SU.block, EnumPowerTier.EXTREME, TechRebornConfig.idsuMaxInput, TechRebornConfig.idsuMaxOutput, TechRebornConfig.idsuMaxEnergy);
|
super(TRBlockEntities.INTERDIMENSIONAL_SU, "IDSU", 2, TRContent.Machine.INTERDIMENSIONAL_SU.block, EnergyTier.EXTREME, TechRebornConfig.idsuMaxInput, TechRebornConfig.idsuMaxOutput, TechRebornConfig.idsuMaxEnergy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -29,10 +29,10 @@ import net.minecraft.block.entity.BlockEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.client.containerBuilder.IContainerProvider;
|
import reborncore.client.containerBuilder.IContainerProvider;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
import reborncore.client.containerBuilder.builder.ContainerBuilder;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.blockentity.storage.EnergyStorageBlockEntity;
|
import techreborn.blockentity.storage.EnergyStorageBlockEntity;
|
||||||
import techreborn.blocks.storage.BlockLapotronicSU;
|
import techreborn.blocks.storage.BlockLapotronicSU;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
|
@ -47,7 +47,7 @@ public class LapotronicSUBlockEntity extends EnergyStorageBlockEntity implements
|
||||||
private ArrayList<LesuNetwork> countedNetworks = new ArrayList<>();
|
private ArrayList<LesuNetwork> countedNetworks = new ArrayList<>();
|
||||||
|
|
||||||
public LapotronicSUBlockEntity() {
|
public LapotronicSUBlockEntity() {
|
||||||
super(TRBlockEntities.LAPOTRONIC_SU, "LESU", 2, TRContent.Machine.LAPOTRONIC_SU.block, EnumPowerTier.INSANE, 8192, TechRebornConfig.lesuBaseOutput, 1_000_000);
|
super(TRBlockEntities.LAPOTRONIC_SU, "LESU", 2, TRContent.Machine.LAPOTRONIC_SU.block, EnergyTier.INSANE, 8192, TechRebornConfig.lesuBaseOutput, 1_000_000);
|
||||||
checkOverfill = false;
|
checkOverfill = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
package techreborn.blockentity.transformers;
|
package techreborn.blockentity.transformers;
|
||||||
|
|
||||||
import reborncore.api.power.EnumPowerTier;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ import techreborn.init.TRContent;
|
||||||
public class EVTransformerBlockEntity extends TransformerBlockEntity {
|
public class EVTransformerBlockEntity extends TransformerBlockEntity {
|
||||||
|
|
||||||
public EVTransformerBlockEntity() {
|
public EVTransformerBlockEntity() {
|
||||||
super(TRBlockEntities.EV_TRANSFORMER, "EVTransformer", TRContent.Machine.EV_TRANSFORMER.block, EnumPowerTier.INSANE);
|
super(TRBlockEntities.EV_TRANSFORMER, "EVTransformer", TRContent.Machine.EV_TRANSFORMER.block, EnergyTier.INSANE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
|
|
||||||
package techreborn.blockentity.transformers;
|
package techreborn.blockentity.transformers;
|
||||||
|
|
||||||
import reborncore.api.power.EnumPowerTier;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRContent;
|
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 16/03/2016.
|
* Created by modmuss50 on 16/03/2016.
|
||||||
|
@ -34,7 +34,7 @@ import techreborn.init.TRBlockEntities;
|
||||||
public class HVTransformerBlockEntity extends TransformerBlockEntity {
|
public class HVTransformerBlockEntity extends TransformerBlockEntity {
|
||||||
|
|
||||||
public HVTransformerBlockEntity() {
|
public HVTransformerBlockEntity() {
|
||||||
super(TRBlockEntities.HV_TRANSFORMER, "HVTransformer", TRContent.Machine.HV_TRANSFORMER.block, EnumPowerTier.EXTREME);
|
super(TRBlockEntities.HV_TRANSFORMER, "HVTransformer", TRContent.Machine.HV_TRANSFORMER.block, EnergyTier.EXTREME);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
|
|
||||||
package techreborn.blockentity.transformers;
|
package techreborn.blockentity.transformers;
|
||||||
|
|
||||||
import reborncore.api.power.EnumPowerTier;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRContent;
|
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 16/03/2016.
|
* Created by modmuss50 on 16/03/2016.
|
||||||
|
@ -34,7 +34,7 @@ import techreborn.init.TRBlockEntities;
|
||||||
public class LVTransformerBlockEntity extends TransformerBlockEntity {
|
public class LVTransformerBlockEntity extends TransformerBlockEntity {
|
||||||
|
|
||||||
public LVTransformerBlockEntity() {
|
public LVTransformerBlockEntity() {
|
||||||
super(TRBlockEntities.LV_TRANSFORMER, "LVTransformer", TRContent.Machine.LV_TRANSFORMER.block, EnumPowerTier.MEDIUM);
|
super(TRBlockEntities.LV_TRANSFORMER, "LVTransformer", TRContent.Machine.LV_TRANSFORMER.block, EnergyTier.MEDIUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
|
|
||||||
package techreborn.blockentity.transformers;
|
package techreborn.blockentity.transformers;
|
||||||
|
|
||||||
import reborncore.api.power.EnumPowerTier;
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRContent;
|
|
||||||
import techreborn.init.TRBlockEntities;
|
import techreborn.init.TRBlockEntities;
|
||||||
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 16/03/2016.
|
* Created by modmuss50 on 16/03/2016.
|
||||||
|
@ -34,6 +34,6 @@ import techreborn.init.TRBlockEntities;
|
||||||
public class MVTransformerBlockEntity extends TransformerBlockEntity {
|
public class MVTransformerBlockEntity extends TransformerBlockEntity {
|
||||||
|
|
||||||
public MVTransformerBlockEntity() {
|
public MVTransformerBlockEntity() {
|
||||||
super(TRBlockEntities.MV_TRANSFORMER, "MVTransformer", TRContent.Machine.MV_TRANSFORMER.block, EnumPowerTier.HIGH);
|
super(TRBlockEntities.MV_TRANSFORMER, "MVTransformer", TRContent.Machine.MV_TRANSFORMER.block, EnergyTier.HIGH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,20 +24,21 @@
|
||||||
|
|
||||||
package techreborn.blockentity.transformers;
|
package techreborn.blockentity.transformers;
|
||||||
|
|
||||||
import net.minecraft.text.LiteralText;
|
|
||||||
import net.minecraft.text.Text;
|
|
||||||
import net.minecraft.util.Formatting;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.entity.BlockEntityType;
|
import net.minecraft.block.entity.BlockEntityType;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.text.LiteralText;
|
||||||
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import reborncore.api.IListInfoProvider;
|
import reborncore.api.IListInfoProvider;
|
||||||
import reborncore.api.IToolDrop;
|
import reborncore.api.IToolDrop;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
|
||||||
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
||||||
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.StringUtils;
|
import reborncore.common.util.StringUtils;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.blocks.transformers.BlockTransformer;
|
import techreborn.blocks.transformers.BlockTransformer;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
|
|
||||||
|
@ -52,20 +53,20 @@ public class TransformerBlockEntity extends PowerAcceptorBlockEntity
|
||||||
|
|
||||||
public String name;
|
public String name;
|
||||||
public Block wrenchDrop;
|
public Block wrenchDrop;
|
||||||
public EnumPowerTier inputTier;
|
public EnergyTier inputTier;
|
||||||
public EnumPowerTier ouputTier;
|
public EnergyTier ouputTier;
|
||||||
public int maxInput;
|
public int maxInput;
|
||||||
public int maxOutput;
|
public int maxOutput;
|
||||||
public int maxStorage;
|
public int maxStorage;
|
||||||
|
|
||||||
public TransformerBlockEntity(BlockEntityType<?> blockEntityType, String name, Block wrenchDrop, EnumPowerTier tier) {
|
public TransformerBlockEntity(BlockEntityType<?> blockEntityType, String name, Block wrenchDrop, EnergyTier tier) {
|
||||||
super(blockEntityType);
|
super(blockEntityType);
|
||||||
this.wrenchDrop = wrenchDrop;
|
this.wrenchDrop = wrenchDrop;
|
||||||
this.inputTier = tier;
|
this.inputTier = tier;
|
||||||
if (tier != EnumPowerTier.MICRO) {
|
if (tier != EnergyTier.MICRO) {
|
||||||
ouputTier = EnumPowerTier.values()[tier.ordinal() - 1];
|
ouputTier = EnergyTier.values()[tier.ordinal() - 1];
|
||||||
} else {
|
} else {
|
||||||
ouputTier = EnumPowerTier.MICRO;
|
ouputTier = EnergyTier.MICRO;
|
||||||
}
|
}
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.maxInput = tier.getMaxInput();
|
this.maxInput = tier.getMaxInput();
|
||||||
|
@ -109,7 +110,7 @@ public class TransformerBlockEntity extends PowerAcceptorBlockEntity
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnumPowerTier getPushingTier() {
|
public EnergyTier getPushingTier() {
|
||||||
return ouputTier;
|
return ouputTier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,9 +138,9 @@ public class TransformerBlockEntity extends PowerAcceptorBlockEntity
|
||||||
// IListInfoProvider
|
// IListInfoProvider
|
||||||
@Override
|
@Override
|
||||||
public void addInfo(List<Text> info, boolean isReal, boolean hasData) {
|
public void addInfo(List<Text> info, boolean isReal, boolean hasData) {
|
||||||
info.add(new LiteralText(Formatting.GRAY + "Input Rate: " + Formatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxInput())));
|
info.add(new LiteralText(Formatting.GRAY + "Input Rate: " + Formatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxInput(EnergySide.UNKNOWN))));
|
||||||
info.add(new LiteralText(Formatting.GRAY + "Input Tier: " + Formatting.GOLD + StringUtils.toFirstCapitalAllLowercase(inputTier.toString())));
|
info.add(new LiteralText(Formatting.GRAY + "Input Tier: " + Formatting.GOLD + StringUtils.toFirstCapitalAllLowercase(inputTier.toString())));
|
||||||
info.add(new LiteralText(Formatting.GRAY + "Output Rate: " + Formatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxOutput())));
|
info.add(new LiteralText(Formatting.GRAY + "Output Rate: " + Formatting.GOLD + PowerSystem.getLocaliszedPowerFormatted((int) getMaxOutput(EnergySide.UNKNOWN))));
|
||||||
info.add(new LiteralText(Formatting.GRAY + "Output Tier: " + Formatting.GOLD + StringUtils.toFirstCapitalAllLowercase(ouputTier.toString())));
|
info.add(new LiteralText(Formatting.GRAY + "Output Tier: " + Formatting.GOLD + StringUtils.toFirstCapitalAllLowercase(ouputTier.toString())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,13 +46,13 @@ import net.minecraft.world.BlockView;
|
||||||
import net.minecraft.world.IWorld;
|
import net.minecraft.world.IWorld;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.ToolManager;
|
import reborncore.api.ToolManager;
|
||||||
import reborncore.api.power.EnergyBlockEntity;
|
|
||||||
import reborncore.common.blocks.BlockWrenchEventHandler;
|
import reborncore.common.blocks.BlockWrenchEventHandler;
|
||||||
import reborncore.common.util.WrenchUtils;
|
import reborncore.common.util.WrenchUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import techreborn.blockentity.cable.CableBlockEntity;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.ModSounds;
|
import techreborn.init.ModSounds;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.blockentity.cable.CableBlockEntity;
|
|
||||||
import techreborn.utils.damageSources.ElectrialShockSource;
|
import techreborn.utils.damageSources.ElectrialShockSource;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
@ -112,7 +112,7 @@ public class BlockCable extends BlockWithEntity {
|
||||||
|
|
||||||
private Boolean canConnectTo(IWorld world, BlockPos pos, Direction facing) {
|
private Boolean canConnectTo(IWorld world, BlockPos pos, Direction facing) {
|
||||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||||
if (blockEntity != null && (blockEntity instanceof EnergyBlockEntity || blockEntity instanceof CableBlockEntity)) {
|
if (blockEntity != null && (Energy.valid(blockEntity) || blockEntity instanceof CableBlockEntity)) {
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
|
|
|
@ -24,11 +24,8 @@
|
||||||
|
|
||||||
package techreborn.blocks.lighting;
|
package techreborn.blocks.lighting;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.fabricmc.fabric.api.block.FabricBlockSettings;
|
||||||
import net.minecraft.block.BlockRenderLayer;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.block.BlockRenderType;
|
|
||||||
import net.minecraft.block.BlockState;
|
|
||||||
import net.minecraft.block.Material;
|
|
||||||
import net.minecraft.block.entity.BlockEntity;
|
import net.minecraft.block.entity.BlockEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
|
@ -59,14 +56,13 @@ public class BlockLamp extends BaseBlockEntityProvider {
|
||||||
protected final VoxelShape[] shape;
|
protected final VoxelShape[] shape;
|
||||||
|
|
||||||
private int cost;
|
private int cost;
|
||||||
private int brightness;
|
private static int brightness = 15;
|
||||||
|
|
||||||
public BlockLamp(int brightness, int cost, double depth, double width) {
|
public BlockLamp(int cost, double depth, double width) {
|
||||||
super(Block.Settings.of(Material.REDSTONE_LAMP).strength(2f, 2f));
|
super(FabricBlockSettings.of(Material.REDSTONE_LAMP).strength(2f, 2f).lightLevel(brightness).build());
|
||||||
this.setDefaultState(this.stateFactory.getDefaultState().with(FACING, Direction.NORTH).with(ACTIVE, false));
|
|
||||||
this.shape = GenCuboidShapes(depth, width);
|
this.shape = GenCuboidShapes(depth, width);
|
||||||
this.cost = cost;
|
this.cost = cost;
|
||||||
this.brightness = brightness;
|
this.setDefaultState(this.stateFactory.getDefaultState().with(FACING, Direction.NORTH).with(ACTIVE, false));
|
||||||
BlockWrenchEventHandler.wrenableBlocks.add(this);
|
BlockWrenchEventHandler.wrenableBlocks.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,6 +131,7 @@ public class BlockLamp extends BaseBlockEntityProvider {
|
||||||
return state.get(ACTIVE) ? brightness : 0;
|
return state.get(ACTIVE) ? brightness : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockRenderLayer getRenderLayer() {
|
public BlockRenderLayer getRenderLayer() {
|
||||||
return BlockRenderLayer.CUTOUT;
|
return BlockRenderLayer.CUTOUT;
|
||||||
|
|
|
@ -43,15 +43,13 @@ import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.util.WorldUtils;
|
import reborncore.common.util.WorldUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
import techreborn.events.TRRecipeHandler;
|
import techreborn.events.TRRecipeHandler;
|
||||||
import techreborn.init.ModSounds;
|
import techreborn.init.ModSounds;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.items.tool.ItemTreeTap;
|
import techreborn.items.tool.ItemTreeTap;
|
||||||
import techreborn.items.tool.basic.ItemElectricTreetap;
|
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -121,22 +119,16 @@ public class BlockRubberLog extends LogBlock {
|
||||||
if (stack.isEmpty()) {
|
if (stack.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Should it be here??
|
if ((Energy.valid(stack) && Energy.of(stack).getEnergy() > 20) || stack.getItem() instanceof ItemTreeTap) {
|
||||||
ItemPowerManager capEnergy = null;
|
|
||||||
if (stack.getItem() instanceof ItemElectricTreetap) {
|
|
||||||
capEnergy = new ItemPowerManager(stack);
|
|
||||||
}
|
|
||||||
if ((capEnergy != null && capEnergy.getEnergyStored() > 20) || stack.getItem() instanceof ItemTreeTap) {
|
|
||||||
if (state.get(HAS_SAP) && state.get(SAP_SIDE) == hitResult.getSide()) {
|
if (state.get(HAS_SAP) && state.get(SAP_SIDE) == hitResult.getSide()) {
|
||||||
worldIn.setBlockState(pos, state.with(HAS_SAP, false).with(SAP_SIDE, Direction.fromHorizontal(0)));
|
worldIn.setBlockState(pos, state.with(HAS_SAP, false).with(SAP_SIDE, Direction.fromHorizontal(0)));
|
||||||
worldIn.playSound(null, pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAP_EXTRACT, SoundCategory.BLOCKS,
|
worldIn.playSound(null, pos.getX(), pos.getY(), pos.getZ(), ModSounds.SAP_EXTRACT, SoundCategory.BLOCKS,
|
||||||
0.6F, 1F);
|
0.6F, 1F);
|
||||||
if (!worldIn.isClient) {
|
if (!worldIn.isClient) {
|
||||||
if (capEnergy != null) {
|
if (Energy.valid(stack)) {
|
||||||
capEnergy.useEnergy(20, false);
|
Energy.of(stack).use(20);
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, playerIn);
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, playerIn);
|
|
||||||
} else {
|
} else {
|
||||||
playerIn.getStackInHand(Hand.MAIN_HAND).damage(1, playerIn, playerEntity -> {});
|
playerIn.getStackInHand(Hand.MAIN_HAND).damage(1, playerIn, playerEntity -> {});
|
||||||
}
|
}
|
||||||
|
@ -152,14 +144,4 @@ public class BlockRubberLog extends LogBlock {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public void getDrops(BlockState state, DefaultedList<ItemStack> drops, World world, BlockPos pos, int fortune) {
|
|
||||||
// drops.add(new ItemStack(this));
|
|
||||||
// if (state.get(HAS_SAP)) {
|
|
||||||
// if (new Random().nextInt(4) == 0) {
|
|
||||||
// drops.add(TRContent.Parts.SAP.getStack());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,11 +24,11 @@
|
||||||
|
|
||||||
package techreborn.client.gui;
|
package techreborn.client.gui;
|
||||||
|
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
import reborncore.client.containerBuilder.builder.BuiltContainer;
|
||||||
import reborncore.client.gui.builder.GuiBase;
|
import reborncore.client.gui.builder.GuiBase;
|
||||||
import reborncore.common.fluid.FluidUtil;
|
import reborncore.common.fluid.FluidUtil;
|
||||||
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import techreborn.blockentity.machine.tier3.QuantumTankBlockEntity;
|
import techreborn.blockentity.machine.tier3.QuantumTankBlockEntity;
|
||||||
|
|
||||||
public class GuiQuantumTank extends GuiBase<BuiltContainer> {
|
public class GuiQuantumTank extends GuiBase<BuiltContainer> {
|
||||||
|
|
|
@ -0,0 +1,113 @@
|
||||||
|
package techreborn.client.render;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
|
||||||
|
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
|
||||||
|
import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView;
|
||||||
|
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
|
||||||
|
import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
|
||||||
|
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
||||||
|
import net.fabricmc.indigo.renderer.helper.GeometryHelper;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
import net.minecraft.client.render.model.BakedModel;
|
||||||
|
import net.minecraft.client.render.model.BakedModelManager;
|
||||||
|
import net.minecraft.client.render.model.BakedQuad;
|
||||||
|
import net.minecraft.client.render.model.json.ModelItemPropertyOverrideList;
|
||||||
|
import net.minecraft.client.render.model.json.ModelTransformation;
|
||||||
|
import net.minecraft.client.texture.Sprite;
|
||||||
|
import net.minecraft.client.util.ModelIdentifier;
|
||||||
|
import net.minecraft.fluid.Fluid;
|
||||||
|
import net.minecraft.fluid.Fluids;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.world.BlockRenderView;
|
||||||
|
import reborncore.common.fluid.container.ItemFluidInfo;
|
||||||
|
import reborncore.common.util.Color;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public abstract class BaseDynamicFluidBakedModel implements BakedModel, FabricBakedModel {
|
||||||
|
|
||||||
|
public abstract ModelIdentifier getBaseModel();
|
||||||
|
public abstract ModelIdentifier getBackgroundModel();
|
||||||
|
public abstract ModelIdentifier getFluidModel();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) {
|
||||||
|
Fluid fluid = Fluids.EMPTY;
|
||||||
|
if (stack.getItem() instanceof ItemFluidInfo) {
|
||||||
|
ItemFluidInfo fluidInfo = (ItemFluidInfo) stack.getItem();
|
||||||
|
fluid = fluidInfo.getFluid(stack);
|
||||||
|
|
||||||
|
}
|
||||||
|
BakedModelManager bakedModelManager = MinecraftClient.getInstance().getBakedModelManager();
|
||||||
|
context.fallbackConsumer().accept(bakedModelManager.getModel(getBaseModel()));
|
||||||
|
context.fallbackConsumer().accept(bakedModelManager.getModel(getBackgroundModel()));
|
||||||
|
|
||||||
|
if (fluid != Fluids.EMPTY) {
|
||||||
|
FluidRenderHandler fluidRenderHandler = FluidRenderHandlerRegistry.INSTANCE.get(fluid);
|
||||||
|
BakedModel fluidModel = bakedModelManager.getModel(getFluidModel());
|
||||||
|
int fluidColor = fluidRenderHandler.getFluidColor(MinecraftClient.getInstance().world, MinecraftClient.getInstance().player.getBlockPos(), fluid.getDefaultState());
|
||||||
|
Sprite fluidSprite = fluidRenderHandler.getFluidSprites(MinecraftClient.getInstance().world, BlockPos.ORIGIN, fluid.getDefaultState())[0];
|
||||||
|
int color = new Color((float) (fluidColor >> 16 & 255) / 255.0F, (float) (fluidColor >> 8 & 255) / 255.0F, (float) (fluidColor & 255) / 255.0F).getColor();
|
||||||
|
context.pushTransform(quad -> {
|
||||||
|
quad.nominalFace(GeometryHelper.lightFace(quad));
|
||||||
|
quad.spriteColor(0, color, color, color, color);
|
||||||
|
quad.spriteBake(0, fluidSprite, MutableQuadView.BAKE_LOCK_UV);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
final QuadEmitter emitter = context.getEmitter();
|
||||||
|
fluidModel.getQuads(null, null, randomSupplier.get()).forEach(q -> {
|
||||||
|
emitter.fromVanilla(q.getVertexData(), 0, false);
|
||||||
|
emitter.emit();
|
||||||
|
});
|
||||||
|
context.popTransform();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BakedQuad> getQuads(@Nullable BlockState blockState, @Nullable Direction direction, Random random) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isVanillaAdapter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean useAmbientOcclusion() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasDepthInGui() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBuiltin() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ModelTransformation getTransformation() {
|
||||||
|
return ModelHelper.DEFAULT_ITEM_TRANSFORMS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ModelItemPropertyOverrideList getItemPropertyOverrides() {
|
||||||
|
return ModelItemPropertyOverrideList.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -24,126 +24,35 @@
|
||||||
|
|
||||||
package techreborn.client.render;
|
package techreborn.client.render;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
|
|
||||||
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
|
||||||
import net.fabricmc.indigo.renderer.helper.GeometryHelper;
|
|
||||||
import net.minecraft.block.BlockState;
|
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.render.model.BakedModel;
|
|
||||||
import net.minecraft.client.render.model.BakedModelManager;
|
|
||||||
import net.minecraft.client.render.model.BakedQuad;
|
|
||||||
import net.minecraft.client.render.model.json.ModelItemPropertyOverrideList;
|
|
||||||
import net.minecraft.client.render.model.json.ModelTransformation;
|
|
||||||
import net.minecraft.client.texture.Sprite;
|
import net.minecraft.client.texture.Sprite;
|
||||||
import net.minecraft.client.util.ModelIdentifier;
|
import net.minecraft.client.util.ModelIdentifier;
|
||||||
import net.minecraft.fluid.Fluid;
|
|
||||||
import net.minecraft.fluid.Fluids;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.util.math.Direction;
|
|
||||||
import net.minecraft.world.BlockRenderView;
|
|
||||||
import reborncore.common.fluid.container.ItemFluidInfo;
|
|
||||||
import reborncore.common.util.Color;
|
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
public class DynamicBucketBakedModel extends BaseDynamicFluidBakedModel {
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
public class DynamicBucketBakedModel implements BakedModel, FabricBakedModel {
|
|
||||||
|
|
||||||
private final Fluid fluid;
|
|
||||||
|
|
||||||
private static final ModelIdentifier BUCKET_BASE = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_base"), "inventory");
|
private static final ModelIdentifier BUCKET_BASE = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_base"), "inventory");
|
||||||
private static final ModelIdentifier BUCKET_BACKGROUND = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_background"), "inventory");
|
private static final ModelIdentifier BUCKET_BACKGROUND = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_background"), "inventory");
|
||||||
private static final ModelIdentifier BUCKET_FLUID = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_fluid"), "inventory");
|
private static final ModelIdentifier BUCKET_FLUID = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "bucket_fluid"), "inventory");
|
||||||
|
|
||||||
public DynamicBucketBakedModel(Fluid fluid) {
|
|
||||||
this.fluid = fluid;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) {
|
|
||||||
Fluid fluid = Fluids.EMPTY;
|
|
||||||
if (stack.getItem() instanceof ItemFluidInfo) {
|
|
||||||
ItemFluidInfo fluidInfo = (ItemFluidInfo) stack.getItem();
|
|
||||||
fluid = fluidInfo.getFluid(stack);
|
|
||||||
|
|
||||||
}
|
|
||||||
BakedModelManager bakedModelManager = MinecraftClient.getInstance().getBakedModelManager();
|
|
||||||
context.fallbackConsumer().accept(bakedModelManager.getModel(BUCKET_BASE));
|
|
||||||
context.fallbackConsumer().accept(bakedModelManager.getModel(BUCKET_BACKGROUND));
|
|
||||||
|
|
||||||
if (fluid != Fluids.EMPTY) {
|
|
||||||
FluidRenderHandler fluidRenderHandler = FluidRenderHandlerRegistry.INSTANCE.get(fluid);
|
|
||||||
BakedModel fluidModel = bakedModelManager.getModel(BUCKET_FLUID);
|
|
||||||
int fluidColor = fluidRenderHandler.getFluidColor(MinecraftClient.getInstance().world, MinecraftClient.getInstance().player.getBlockPos(), fluid.getDefaultState());
|
|
||||||
Sprite fluidSprite = fluidRenderHandler.getFluidSprites(MinecraftClient.getInstance().world, BlockPos.ORIGIN, fluid.getDefaultState())[0];
|
|
||||||
int color = new Color((float) (fluidColor >> 16 & 255) / 255.0F, (float) (fluidColor >> 8 & 255) / 255.0F, (float) (fluidColor & 255) / 255.0F).getColor();
|
|
||||||
context.pushTransform(quad -> {
|
|
||||||
quad.nominalFace(GeometryHelper.lightFace(quad));
|
|
||||||
quad.spriteColor(0, color, color, color, color);
|
|
||||||
quad.spriteBake(0, fluidSprite, MutableQuadView.BAKE_LOCK_UV);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
final QuadEmitter emitter = context.getEmitter();
|
|
||||||
fluidModel.getQuads(null, null, randomSupplier.get()).forEach(q -> {
|
|
||||||
emitter.fromVanilla(q.getVertexData(), 0, false);
|
|
||||||
emitter.emit();
|
|
||||||
});
|
|
||||||
context.popTransform();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<BakedQuad> getQuads(@Nullable BlockState blockState, @Nullable Direction direction, Random random) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isVanillaAdapter() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean useAmbientOcclusion() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasDepthInGui() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isBuiltin() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Sprite getSprite() {
|
public Sprite getSprite() {
|
||||||
return MinecraftClient.getInstance().getSpriteAtlas().getSprite(new Identifier("minecraft:item/bucket"));
|
return MinecraftClient.getInstance().getSpriteAtlas().getSprite(new Identifier("minecraft:item/bucket"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ModelTransformation getTransformation() {
|
public ModelIdentifier getBaseModel() {
|
||||||
return ModelHelper.DEFAULT_ITEM_TRANSFORMS;
|
return BUCKET_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ModelItemPropertyOverrideList getItemPropertyOverrides() {
|
public ModelIdentifier getBackgroundModel() {
|
||||||
return ModelItemPropertyOverrideList.EMPTY;
|
return BUCKET_BACKGROUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ModelIdentifier getFluidModel() {
|
||||||
|
return BUCKET_FLUID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,123 +24,50 @@
|
||||||
|
|
||||||
package techreborn.client.render;
|
package techreborn.client.render;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler;
|
|
||||||
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel;
|
|
||||||
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext;
|
||||||
import net.fabricmc.indigo.renderer.helper.GeometryHelper;
|
|
||||||
import net.minecraft.block.BlockState;
|
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.render.model.BakedModel;
|
|
||||||
import net.minecraft.client.render.model.BakedModelManager;
|
import net.minecraft.client.render.model.BakedModelManager;
|
||||||
import net.minecraft.client.render.model.BakedQuad;
|
|
||||||
import net.minecraft.client.render.model.json.ModelItemPropertyOverrideList;
|
|
||||||
import net.minecraft.client.render.model.json.ModelTransformation;
|
|
||||||
import net.minecraft.client.texture.Sprite;
|
import net.minecraft.client.texture.Sprite;
|
||||||
import net.minecraft.client.util.ModelIdentifier;
|
import net.minecraft.client.util.ModelIdentifier;
|
||||||
import net.minecraft.fluid.Fluid;
|
|
||||||
import net.minecraft.fluid.Fluids;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.util.math.Direction;
|
|
||||||
import net.minecraft.world.BlockRenderView;
|
|
||||||
import reborncore.common.fluid.container.ItemFluidInfo;
|
|
||||||
import reborncore.common.util.Color;
|
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class DynamicCellBakedModel implements BakedModel, FabricBakedModel {
|
public class DynamicCellBakedModel extends BaseDynamicFluidBakedModel {
|
||||||
|
|
||||||
private static final ModelIdentifier CELL_BASE = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_base"), "inventory");
|
private static final ModelIdentifier CELL_BASE = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_base"), "inventory");
|
||||||
private static final ModelIdentifier CELL_BACKGROUND = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_background"), "inventory");
|
private static final ModelIdentifier CELL_BACKGROUND = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_background"), "inventory");
|
||||||
private static final ModelIdentifier CELL_FLUID = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_fluid"), "inventory");
|
private static final ModelIdentifier CELL_FLUID = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_fluid"), "inventory");
|
||||||
private static final ModelIdentifier CELL_GLASS = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_glass"), "inventory");
|
private static final ModelIdentifier CELL_GLASS = new ModelIdentifier(new Identifier(TechReborn.MOD_ID, "cell_glass"), "inventory");
|
||||||
|
|
||||||
@Override
|
|
||||||
public void emitBlockQuads(BlockRenderView blockRenderView, BlockState blockState, BlockPos blockPos, Supplier<Random> supplier, RenderContext renderContext) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) {
|
public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) {
|
||||||
Fluid fluid = Fluids.EMPTY;
|
super.emitItemQuads(stack, randomSupplier, context);
|
||||||
if (stack.getItem() instanceof ItemFluidInfo) {
|
|
||||||
ItemFluidInfo fluidInfo = (ItemFluidInfo) stack.getItem();
|
|
||||||
fluid = fluidInfo.getFluid(stack);
|
|
||||||
|
|
||||||
}
|
|
||||||
BakedModelManager bakedModelManager = MinecraftClient.getInstance().getBakedModelManager();
|
BakedModelManager bakedModelManager = MinecraftClient.getInstance().getBakedModelManager();
|
||||||
context.fallbackConsumer().accept(bakedModelManager.getModel(CELL_BASE));
|
|
||||||
context.fallbackConsumer().accept(bakedModelManager.getModel(CELL_BACKGROUND));
|
|
||||||
|
|
||||||
if (fluid != Fluids.EMPTY) {
|
|
||||||
FluidRenderHandler fluidRenderHandler = FluidRenderHandlerRegistry.INSTANCE.get(fluid);
|
|
||||||
BakedModel fluidModel = bakedModelManager.getModel(CELL_FLUID);
|
|
||||||
int fluidColor = fluidRenderHandler.getFluidColor(MinecraftClient.getInstance().world, MinecraftClient.getInstance().player.getBlockPos(), fluid.getDefaultState());
|
|
||||||
Sprite fluidSprite = fluidRenderHandler.getFluidSprites(MinecraftClient.getInstance().world, BlockPos.ORIGIN, fluid.getDefaultState())[0];
|
|
||||||
int color = new Color((float) (fluidColor >> 16 & 255) / 255.0F, (float) (fluidColor >> 8 & 255) / 255.0F, (float) (fluidColor & 255) / 255.0F).getColor();
|
|
||||||
context.pushTransform(quad -> {
|
|
||||||
quad.nominalFace(GeometryHelper.lightFace(quad));
|
|
||||||
quad.spriteColor(0, color, color, color, color);
|
|
||||||
quad.spriteBake(0, fluidSprite, MutableQuadView.BAKE_LOCK_UV);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
final QuadEmitter emitter = context.getEmitter();
|
|
||||||
fluidModel.getQuads(null, null, randomSupplier.get()).forEach(q -> {
|
|
||||||
emitter.fromVanilla(q.getVertexData(), 0, false);
|
|
||||||
emitter.emit();
|
|
||||||
});
|
|
||||||
context.popTransform();
|
|
||||||
}
|
|
||||||
|
|
||||||
context.fallbackConsumer().accept(bakedModelManager.getModel(CELL_GLASS));
|
context.fallbackConsumer().accept(bakedModelManager.getModel(CELL_GLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<BakedQuad> getQuads(@Nullable BlockState blockState, @Nullable Direction direction, Random random) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isVanillaAdapter() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean useAmbientOcclusion() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasDepthInGui() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isBuiltin() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Sprite getSprite() {
|
public Sprite getSprite() {
|
||||||
return MinecraftClient.getInstance().getSpriteAtlas().getSprite(new Identifier("techreborn:item/cell_base"));
|
return MinecraftClient.getInstance().getSpriteAtlas().getSprite(new Identifier("techreborn:item/cell_base"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ModelTransformation getTransformation() {
|
public ModelIdentifier getBaseModel() {
|
||||||
return ModelHelper.DEFAULT_ITEM_TRANSFORMS;
|
return CELL_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ModelItemPropertyOverrideList getItemPropertyOverrides() {
|
public ModelIdentifier getBackgroundModel() {
|
||||||
return ModelItemPropertyOverrideList.EMPTY;
|
return CELL_BACKGROUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ModelIdentifier getFluidModel() {
|
||||||
|
return CELL_FLUID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ import net.minecraft.text.TranslatableText;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import reborncore.common.crafting.RebornRecipe;
|
import reborncore.common.crafting.RebornRecipe;
|
||||||
import reborncore.common.crafting.RebornRecipeType;
|
import reborncore.common.crafting.RebornRecipeType;
|
||||||
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import reborncore.common.util.StringUtils;
|
import reborncore.common.util.StringUtils;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -45,8 +46,6 @@ import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
|
||||||
|
|
||||||
public class MachineRecipeCategory<R extends RebornRecipe> implements RecipeCategory<MachineRecipeDisplay<R>> {
|
public class MachineRecipeCategory<R extends RebornRecipe> implements RecipeCategory<MachineRecipeDisplay<R>> {
|
||||||
|
|
||||||
private final RebornRecipeType<R> rebornRecipeType;
|
private final RebornRecipeType<R> rebornRecipeType;
|
||||||
|
|
|
@ -28,6 +28,7 @@ import me.shedaniel.rei.api.RecipeDisplay;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import reborncore.common.crafting.ingredient.RebornIngredient;
|
import reborncore.common.crafting.ingredient.RebornIngredient;
|
||||||
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import techreborn.api.recipe.recipes.BlastFurnaceRecipe;
|
import techreborn.api.recipe.recipes.BlastFurnaceRecipe;
|
||||||
import reborncore.common.crafting.RebornFluidRecipe;
|
import reborncore.common.crafting.RebornFluidRecipe;
|
||||||
import reborncore.common.crafting.RebornRecipe;
|
import reborncore.common.crafting.RebornRecipe;
|
||||||
|
@ -36,8 +37,6 @@ import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
|
||||||
|
|
||||||
public class MachineRecipeDisplay<R extends RebornRecipe> implements RecipeDisplay {
|
public class MachineRecipeDisplay<R extends RebornRecipe> implements RecipeDisplay {
|
||||||
|
|
||||||
private final R recipe;
|
private final R recipe;
|
||||||
|
|
|
@ -4,7 +4,6 @@ import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
|
||||||
import me.shedaniel.math.api.Point;
|
import me.shedaniel.math.api.Point;
|
||||||
import me.shedaniel.math.api.Rectangle;
|
import me.shedaniel.math.api.Rectangle;
|
||||||
import me.shedaniel.rei.api.RecipeCategory;
|
import me.shedaniel.rei.api.RecipeCategory;
|
||||||
|
@ -21,6 +20,7 @@ import net.minecraft.text.Text;
|
||||||
import net.minecraft.text.TranslatableText;
|
import net.minecraft.text.TranslatableText;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import reborncore.common.crafting.RebornRecipeType;
|
import reborncore.common.crafting.RebornRecipeType;
|
||||||
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import reborncore.common.util.StringUtils;
|
import reborncore.common.util.StringUtils;
|
||||||
import techreborn.api.recipe.recipes.FluidReplicatorRecipe;
|
import techreborn.api.recipe.recipes.FluidReplicatorRecipe;
|
||||||
import techreborn.compat.rei.ReiPlugin;
|
import techreborn.compat.rei.ReiPlugin;
|
||||||
|
|
|
@ -28,7 +28,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import me.shedaniel.rei.api.RecipeDisplay;
|
import me.shedaniel.rei.api.RecipeDisplay;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
|
@ -40,10 +40,11 @@ import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import reborncore.api.IListInfoProvider;
|
import reborncore.api.IListInfoProvider;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.StringUtils;
|
import reborncore.common.util.StringUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -59,11 +60,10 @@ public class StackToolTipHandler implements ItemTooltipCallback {
|
||||||
Item item = stack.getItem();
|
Item item = stack.getItem();
|
||||||
if (item instanceof IListInfoProvider) {
|
if (item instanceof IListInfoProvider) {
|
||||||
((IListInfoProvider) item).addInfo(components, false, false);
|
((IListInfoProvider) item).addInfo(components, false, false);
|
||||||
} else if (stack.getItem() instanceof IEnergyItemInfo) {
|
} else if (stack.getItem() instanceof EnergyHolder) {
|
||||||
ItemPowerManager itemPowerManager = new ItemPowerManager(stack);
|
LiteralText line1 = new LiteralText(PowerSystem.getLocaliszedPowerFormattedNoSuffix(Energy.of(stack).getEnergy()));
|
||||||
LiteralText line1 = new LiteralText(PowerSystem.getLocaliszedPowerFormattedNoSuffix(itemPowerManager.getEnergyStored()));
|
|
||||||
line1.append("/");
|
line1.append("/");
|
||||||
line1.append(PowerSystem.getLocaliszedPowerFormattedNoSuffix(itemPowerManager.getMaxEnergyStored()));
|
line1.append(PowerSystem.getLocaliszedPowerFormattedNoSuffix(Energy.of(stack).getMaxStored()));
|
||||||
line1.append(" ");
|
line1.append(" ");
|
||||||
line1.append(PowerSystem.getDisplayPower().abbreviation);
|
line1.append(PowerSystem.getDisplayPower().abbreviation);
|
||||||
line1.formatted(Formatting.GOLD);
|
line1.formatted(Formatting.GOLD);
|
||||||
|
@ -71,11 +71,11 @@ public class StackToolTipHandler implements ItemTooltipCallback {
|
||||||
components.add(1, line1);
|
components.add(1, line1);
|
||||||
|
|
||||||
if (Screen.hasShiftDown()) {
|
if (Screen.hasShiftDown()) {
|
||||||
int percentage = percentage(itemPowerManager.getMaxEnergyStored(), itemPowerManager.getEnergyStored());
|
int percentage = percentage(Energy.of(stack).getMaxStored(), Energy.of(stack).getEnergy());
|
||||||
Formatting color = StringUtils.getPercentageColour(percentage);
|
Formatting color = StringUtils.getPercentageColour(percentage);
|
||||||
components.add(2, new LiteralText(color + "" + percentage + "%" + Formatting.GRAY + " Charged"));
|
components.add(2, new LiteralText(color + "" + percentage + "%" + Formatting.GRAY + " Charged"));
|
||||||
// TODO: show both input and output rates
|
// TODO: show both input and output rates
|
||||||
components.add(3, new LiteralText(Formatting.GRAY + "I/O Rate: " + Formatting.GOLD + PowerSystem.getLocaliszedPowerFormatted(((IEnergyItemInfo) item).getMaxInput())));
|
components.add(3, new LiteralText(Formatting.GRAY + "I/O Rate: " + Formatting.GOLD + PowerSystem.getLocaliszedPowerFormatted(((EnergyHolder) item).getMaxInput(EnergySide.UNKNOWN))));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
|
@ -105,4 +105,10 @@ public class StackToolTipHandler implements ItemTooltipCallback {
|
||||||
return (int) ((CurrentValue * 100.0f) / MaxValue);
|
return (int) ((CurrentValue * 100.0f) / MaxValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int percentage(double MaxValue, double CurrentValue) {
|
||||||
|
if (CurrentValue == 0)
|
||||||
|
return 0;
|
||||||
|
return (int) ((CurrentValue * 100.0f) / MaxValue);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,9 @@ import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemConvertible;
|
import net.minecraft.item.ItemConvertible;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import reborncore.api.blockentity.IUpgrade;
|
import reborncore.api.blockentity.IUpgrade;
|
||||||
import reborncore.api.power.EnumPowerTier;
|
|
||||||
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
import reborncore.common.powerSystem.PowerAcceptorBlockEntity;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
import techreborn.blockentity.ChargeOMatBlockEntity;
|
import techreborn.blockentity.ChargeOMatBlockEntity;
|
||||||
import techreborn.blockentity.DigitalChestBlockEntity;
|
import techreborn.blockentity.DigitalChestBlockEntity;
|
||||||
|
@ -208,12 +209,12 @@ public class TRContent {
|
||||||
public static Item PERIDOT_BOOTS;
|
public static Item PERIDOT_BOOTS;
|
||||||
|
|
||||||
public enum SolarPanels implements ItemConvertible {
|
public enum SolarPanels implements ItemConvertible {
|
||||||
BASIC(EnumPowerTier.MICRO, TechRebornConfig.basicGenerationRateD, TechRebornConfig.basicGenerationRateN),
|
BASIC(EnergyTier.MICRO, TechRebornConfig.basicGenerationRateD, TechRebornConfig.basicGenerationRateN),
|
||||||
ADVANCED(EnumPowerTier.LOW, TechRebornConfig.advancedGenerationRateD, TechRebornConfig.advancedGenerationRateN),
|
ADVANCED(EnergyTier.LOW, TechRebornConfig.advancedGenerationRateD, TechRebornConfig.advancedGenerationRateN),
|
||||||
INDUSTRIAL(EnumPowerTier.MEDIUM, TechRebornConfig.industrialGenerationRateD, TechRebornConfig.industrialGenerationRateN),
|
INDUSTRIAL(EnergyTier.MEDIUM, TechRebornConfig.industrialGenerationRateD, TechRebornConfig.industrialGenerationRateN),
|
||||||
ULTIMATE(EnumPowerTier.HIGH, TechRebornConfig.ultimateGenerationRateD, TechRebornConfig.ultimateGenerationRateN),
|
ULTIMATE(EnergyTier.HIGH, TechRebornConfig.ultimateGenerationRateD, TechRebornConfig.ultimateGenerationRateN),
|
||||||
QUANTUM(EnumPowerTier.EXTREME, TechRebornConfig.quantumGenerationRateD, TechRebornConfig.quantumGenerationRateN),
|
QUANTUM(EnergyTier.EXTREME, TechRebornConfig.quantumGenerationRateD, TechRebornConfig.quantumGenerationRateN),
|
||||||
CREATIVE(EnumPowerTier.INFINITE, Integer.MAX_VALUE / 100, Integer.MAX_VALUE / 100);
|
CREATIVE(EnergyTier.INFINITE, Integer.MAX_VALUE / 100, Integer.MAX_VALUE / 100);
|
||||||
|
|
||||||
public final String name;
|
public final String name;
|
||||||
public final Block block;
|
public final Block block;
|
||||||
|
@ -224,9 +225,9 @@ public class TRContent {
|
||||||
public int generationRateN;
|
public int generationRateN;
|
||||||
// Internal EU storage of solar panel
|
// Internal EU storage of solar panel
|
||||||
public int internalCapacity;
|
public int internalCapacity;
|
||||||
public final EnumPowerTier powerTier;
|
public final EnergyTier powerTier;
|
||||||
|
|
||||||
SolarPanels(EnumPowerTier tier, int generationRateD, int generationRateN) {
|
SolarPanels(EnergyTier tier, int generationRateD, int generationRateN) {
|
||||||
name = this.toString().toLowerCase(Locale.ROOT);
|
name = this.toString().toLowerCase(Locale.ROOT);
|
||||||
powerTier = tier;
|
powerTier = tier;
|
||||||
block = new BlockSolarPanel(this);
|
block = new BlockSolarPanel(this);
|
||||||
|
@ -245,15 +246,15 @@ public class TRContent {
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Cables implements ItemConvertible {
|
public enum Cables implements ItemConvertible {
|
||||||
COPPER(128, 12.0, true, EnumPowerTier.MEDIUM),
|
COPPER(128, 12.0, true, EnergyTier.MEDIUM),
|
||||||
TIN(32, 12.0, true, EnumPowerTier.LOW),
|
TIN(32, 12.0, true, EnergyTier.LOW),
|
||||||
GOLD(512, 12.0, true, EnumPowerTier.HIGH),
|
GOLD(512, 12.0, true, EnergyTier.HIGH),
|
||||||
HV(2048, 12.0, true, EnumPowerTier.EXTREME),
|
HV(2048, 12.0, true, EnergyTier.EXTREME),
|
||||||
GLASSFIBER(8192, 12.0, false, EnumPowerTier.INSANE),
|
GLASSFIBER(8192, 12.0, false, EnergyTier.INSANE),
|
||||||
INSULATED_COPPER(128, 10.0, false, EnumPowerTier.MEDIUM),
|
INSULATED_COPPER(128, 10.0, false, EnergyTier.MEDIUM),
|
||||||
INSULATED_GOLD(512, 10.0, false, EnumPowerTier.HIGH),
|
INSULATED_GOLD(512, 10.0, false, EnergyTier.HIGH),
|
||||||
INSULATED_HV(2048, 10.0, false, EnumPowerTier.EXTREME),
|
INSULATED_HV(2048, 10.0, false, EnergyTier.EXTREME),
|
||||||
SUPERCONDUCTOR(Integer.MAX_VALUE / 4, 10.0, false, EnumPowerTier.INFINITE);
|
SUPERCONDUCTOR(Integer.MAX_VALUE / 4, 10.0, false, EnergyTier.INFINITE);
|
||||||
|
|
||||||
|
|
||||||
public final String name;
|
public final String name;
|
||||||
|
@ -264,10 +265,10 @@ public class TRContent {
|
||||||
public double cableThickness;
|
public double cableThickness;
|
||||||
public boolean canKill;
|
public boolean canKill;
|
||||||
public boolean defaultCanKill;
|
public boolean defaultCanKill;
|
||||||
public EnumPowerTier tier;
|
public EnergyTier tier;
|
||||||
|
|
||||||
|
|
||||||
Cables(int transferRate, double cableThickness, boolean canKill, EnumPowerTier tier) {
|
Cables(int transferRate, double cableThickness, boolean canKill, EnergyTier tier) {
|
||||||
name = this.toString().toLowerCase(Locale.ROOT);
|
name = this.toString().toLowerCase(Locale.ROOT);
|
||||||
this.transferRate = transferRate;
|
this.transferRate = transferRate;
|
||||||
this.defaultTransferRate = transferRate;
|
this.defaultTransferRate = transferRate;
|
||||||
|
@ -444,8 +445,8 @@ public class TRContent {
|
||||||
|
|
||||||
ALARM(new BlockAlarm()),
|
ALARM(new BlockAlarm()),
|
||||||
CHUNK_LOADER(new GenericMachineBlock(EGui.CHUNK_LOADER, ChunkLoaderBlockEntity::new)),
|
CHUNK_LOADER(new GenericMachineBlock(EGui.CHUNK_LOADER, ChunkLoaderBlockEntity::new)),
|
||||||
LAMP_INCANDESCENT(new BlockLamp(14, 4, 10, 8)),
|
LAMP_INCANDESCENT(new BlockLamp(4, 10, 8)),
|
||||||
LAMP_LED(new BlockLamp(15, 1, 1, 12)),
|
LAMP_LED(new BlockLamp(1, 1, 12)),
|
||||||
PLAYER_DETECTOR(new BlockPlayerDetector());
|
PLAYER_DETECTOR(new BlockPlayerDetector());
|
||||||
|
|
||||||
public final String name;
|
public final String name;
|
||||||
|
@ -718,7 +719,7 @@ public class TRContent {
|
||||||
handler.addSpeedMulti(TechRebornConfig.overclockerSpeed);
|
handler.addSpeedMulti(TechRebornConfig.overclockerSpeed);
|
||||||
handler.addPowerMulti(TechRebornConfig.overclockerPower);
|
handler.addPowerMulti(TechRebornConfig.overclockerPower);
|
||||||
if (powerAcceptor != null) {
|
if (powerAcceptor != null) {
|
||||||
powerAcceptor.extraPowerInput += powerAcceptor.getMaxInput();
|
powerAcceptor.extraPowerInput += powerAcceptor.getMaxInput(EnergySide.UNKNOWN);
|
||||||
powerAcceptor.extraPowerStorage += powerAcceptor.getBaseMaxPower();
|
powerAcceptor.extraPowerStorage += powerAcceptor.getBaseMaxPower();
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -34,16 +34,18 @@ import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRArmorMaterial;
|
import techreborn.init.TRArmorMaterial;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
|
||||||
public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo {
|
public class ItemCloakingDevice extends ItemTRArmour implements EnergyHolder {
|
||||||
|
|
||||||
public static int maxCharge = TechRebornConfig.cloakingDeviceCharge;
|
public static int maxCharge = TechRebornConfig.cloakingDeviceCharge;
|
||||||
public static int usage = TechRebornConfig.cloackingDeviceUsage;
|
public static int usage = TechRebornConfig.cloackingDeviceUsage;
|
||||||
|
@ -59,21 +61,18 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
|
||||||
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
||||||
if (entityIn instanceof PlayerEntity) {
|
if (entityIn instanceof PlayerEntity) {
|
||||||
PlayerEntity player = (PlayerEntity) entityIn;
|
PlayerEntity player = (PlayerEntity) entityIn;
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
|
||||||
if (capEnergy != null && capEnergy.getEnergyStored() >= usage) {
|
if (Energy.valid(stack)) {
|
||||||
capEnergy.useEnergy(usage, false);
|
if(Energy.of(stack).use(usage)){
|
||||||
player.setInvisible(true);
|
player.setInvisible(true);
|
||||||
} else {
|
} else {
|
||||||
if (!player.hasStatusEffect(StatusEffects.INVISIBILITY)) {
|
if (!player.hasStatusEffect(StatusEffects.INVISIBILITY)) {
|
||||||
player.setInvisible(false);
|
player.setInvisible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onArmorTick(World world, PlayerEntity player, ItemStack stack) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
@Override
|
@Override
|
||||||
|
@ -83,7 +82,7 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
|
||||||
}
|
}
|
||||||
InitUtils.initPoweredItems(TRContent.CLOAKING_DEVICE, itemList);
|
InitUtils.initPoweredItems(TRContent.CLOAKING_DEVICE, itemList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getDurability(ItemStack stack) {
|
public double getDurability(ItemStack stack) {
|
||||||
return 1 - ItemUtils.getPowerForDurabilityBar(stack);
|
return 1 - ItemUtils.getPowerForDurabilityBar(stack);
|
||||||
|
@ -99,20 +98,24 @@ public class ItemCloakingDevice extends ItemTRArmour implements IEnergyItemInfo
|
||||||
return PowerSystem.getDisplayPower().colour;
|
return PowerSystem.getDisplayPower().colour;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,20 +27,24 @@ package techreborn.items.armor;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.*;
|
import net.minecraft.item.ArmorItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemGroup;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRArmorMaterial;
|
import techreborn.init.TRArmorMaterial;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
|
||||||
public class ItemLapotronicOrbpack extends ArmorItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemLapotronicOrbpack extends ArmorItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
// 400M FE maxCharge and 100k FE\t charge rate. Fully charged in 3 mins.
|
// 400M FE maxCharge and 100k FE\t charge rate. Fully charged in 3 mins.
|
||||||
public static final int maxCharge = TechRebornConfig.lapotronPackCharge;
|
public static final int maxCharge = TechRebornConfig.lapotronPackCharge;
|
||||||
|
@ -62,8 +66,7 @@ public class ItemLapotronicOrbpack extends ArmorItem implements IEnergyItemInfo,
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
||||||
if (entityIn instanceof PlayerEntity) {
|
if (entityIn instanceof PlayerEntity) {
|
||||||
ItemLithiumIonBatpack.distributePowerToInventory(worldIn, (PlayerEntity) entityIn, stack,
|
ItemLithiumIonBatpack.distributePowerToInventory(worldIn, (PlayerEntity) entityIn, stack, transferLimit);
|
||||||
(int) transferLimit);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,17 +87,12 @@ public class ItemLapotronicOrbpack extends ArmorItem implements IEnergyItemInfo,
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
return transferLimit;
|
return EnergyTier.EXTREME;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMaxOutput() {
|
|
||||||
return transferLimit;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,22 +29,25 @@ import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.*;
|
import net.minecraft.item.ArmorItem;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemGroup;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRArmorMaterial;
|
import techreborn.init.TRArmorMaterial;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
|
||||||
public class ItemLithiumIonBatpack extends ArmorItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemLithiumIonBatpack extends ArmorItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
// 8M FE maxCharge and 2k FE\t charge rate. Fully charged in 3 mins.
|
// 8M FE maxCharge and 2k FE\t charge rate. Fully charged in 3 mins.
|
||||||
public static final int maxCharge = TechRebornConfig.lithiumBatpackCharge;
|
public static final int maxCharge = TechRebornConfig.lithiumBatpackCharge;
|
||||||
|
@ -59,11 +62,9 @@ public class ItemLithiumIonBatpack extends ArmorItem implements IEnergyItemInfo,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(itemStack);
|
|
||||||
|
|
||||||
for (int i = 0; i < player.inventory.getInvSize(); i++) {
|
for (int i = 0; i < player.inventory.getInvSize(); i++) {
|
||||||
if (!player.inventory.getInvStack(i).isEmpty()) {
|
if (!player.inventory.getInvStack(i).isEmpty()) {
|
||||||
ExternalPowerSystems.chargeItem(capEnergy, player.inventory.getInvStack(i));
|
ExternalPowerSystems.chargeItem(itemStack, player.inventory.getInvStack(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,17 +103,13 @@ public class ItemLithiumIonBatpack extends ArmorItem implements IEnergyItemInfo,
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
return transferLimit;
|
return EnergyTier.HIGH;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMaxOutput() {
|
|
||||||
return transferLimit;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,29 +32,30 @@ import net.minecraft.item.ItemPropertyGetter;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class ItemBattery extends Item implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemBattery extends Item implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
int maxEnergy = 0;
|
private final int maxEnergy;
|
||||||
int maxTransfer = 0;
|
private final EnergyTier tier;
|
||||||
|
|
||||||
public ItemBattery(int maxEnergy, int maxTransfer) {
|
public ItemBattery(int maxEnergy, EnergyTier tier) {
|
||||||
super(new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamageIfAbsent(1));
|
super(new Item.Settings().group(TechReborn.ITEMGROUP).maxCount(1).maxDamageIfAbsent(1));
|
||||||
this.maxEnergy = maxEnergy;
|
this.maxEnergy = maxEnergy;
|
||||||
this.maxTransfer = maxTransfer;
|
this.tier = tier;
|
||||||
this.addPropertyGetter(new Identifier("techreborn:empty"), new ItemPropertyGetter() {
|
this.addPropertyGetter(new Identifier("techreborn:empty"), new ItemPropertyGetter() {
|
||||||
@Override
|
@Override
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public float call(ItemStack stack, @Nullable World worldIn, @Nullable LivingEntity entityIn) {
|
public float call(ItemStack stack, @Nullable World worldIn, @Nullable LivingEntity entityIn) {
|
||||||
if (!stack.isEmpty() && new ItemPowerManager(stack).getEnergyStored() == 0) {
|
if (!stack.isEmpty() && Energy.of(stack).getEnergy() == 0) {
|
||||||
return 1.0F;
|
return 1.0F;
|
||||||
}
|
}
|
||||||
return 0.0F;
|
return 0.0F;
|
||||||
|
@ -80,17 +81,12 @@ public class ItemBattery extends Item implements IEnergyItemInfo, ItemDurability
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxEnergy;
|
return maxEnergy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
return maxTransfer;
|
return tier;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMaxOutput() {
|
|
||||||
return maxTransfer;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
@ -37,7 +38,7 @@ public class ItemEnergyCrystal extends ItemBattery {
|
||||||
|
|
||||||
// 4M FE storage with 1k charge rate
|
// 4M FE storage with 1k charge rate
|
||||||
public ItemEnergyCrystal() {
|
public ItemEnergyCrystal() {
|
||||||
super(TechRebornConfig.energyCrystalMaxCharge, 1_000);
|
super(TechRebornConfig.energyCrystalMaxCharge, EnergyTier.HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
@ -37,7 +38,7 @@ public class ItemLapotronCrystal extends ItemBattery {
|
||||||
|
|
||||||
// 40M FE capacity with 10k FE\t charge rate
|
// 40M FE capacity with 10k FE\t charge rate
|
||||||
public ItemLapotronCrystal() {
|
public ItemLapotronCrystal() {
|
||||||
super(TechRebornConfig.lapotronCrystalMaxCharge, 10_000);
|
super(TechRebornConfig.lapotronCrystalMaxCharge, EnergyTier.EXTREME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
@ -37,7 +38,7 @@ public class ItemLapotronicOrb extends ItemBattery {
|
||||||
|
|
||||||
// 400M capacity with 100k FE\t charge rate
|
// 400M capacity with 100k FE\t charge rate
|
||||||
public ItemLapotronicOrb() {
|
public ItemLapotronicOrb() {
|
||||||
super(TechRebornConfig.lapotronicOrbMaxCharge, 100_000);
|
super(TechRebornConfig.lapotronicOrbMaxCharge, EnergyTier.EXTREME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ public class ItemLithiumIonBattery extends ItemBattery {
|
||||||
|
|
||||||
// 400k FE with 1k FE\t charge rate
|
// 400k FE with 1k FE\t charge rate
|
||||||
public ItemLithiumIonBattery() {
|
public ItemLithiumIonBattery() {
|
||||||
super(400_000, 1_000);
|
super(400_000, EnergyTier.HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
|
||||||
|
@ -36,7 +37,7 @@ public class ItemRedCellBattery extends ItemBattery {
|
||||||
|
|
||||||
// 40k FE capacity with 100 FE\t charge rate
|
// 40k FE capacity with 100 FE\t charge rate
|
||||||
public ItemRedCellBattery() {
|
public ItemRedCellBattery() {
|
||||||
super(40_000, 100);
|
super(40_000, EnergyTier.LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
|
|
|
@ -35,18 +35,20 @@ import net.minecraft.item.*;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemChainsaw extends AxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
public int maxCharge = 1;
|
public int maxCharge = 1;
|
||||||
public int cost = 250;
|
public int cost = 250;
|
||||||
|
@ -63,7 +65,7 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
||||||
@Override
|
@Override
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
public float call(ItemStack stack, @Nullable World worldIn, @Nullable LivingEntity entityIn) {
|
public float call(ItemStack stack, @Nullable World worldIn, @Nullable LivingEntity entityIn) {
|
||||||
if (!stack.isEmpty() && new ItemPowerManager(stack).getEnergyStored() >= cost
|
if (!stack.isEmpty() && Energy.of(stack).getEnergy() >= cost
|
||||||
&& entityIn != null && entityIn.getMainHandStack().equals(stack)) {
|
&& entityIn != null && entityIn.getMainHandStack().equals(stack)) {
|
||||||
return 1.0F;
|
return 1.0F;
|
||||||
}
|
}
|
||||||
|
@ -75,7 +77,7 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
||||||
// ItemAxe
|
// ItemAxe
|
||||||
@Override
|
@Override
|
||||||
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
||||||
if (new ItemPowerManager(stack).getEnergyStored() >= cost
|
if (Energy.of(stack).getEnergy() >= cost
|
||||||
&& (state.getMaterial() == Material.WOOD)) {
|
&& (state.getMaterial() == Material.WOOD)) {
|
||||||
return this.poweredSpeed;
|
return this.poweredSpeed;
|
||||||
} else {
|
} else {
|
||||||
|
@ -88,10 +90,8 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
||||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
Energy.of(stack).use(cost);
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -123,17 +123,22 @@ public class ItemChainsaw extends AxeItem implements IEnergyItemInfo, ItemDurabi
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.MEDIUM;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,8 @@ import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.SystemUtil;
|
import net.minecraft.util.SystemUtil;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import reborncore.api.power.EnergyBlockEntity;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
@ -65,8 +65,8 @@ public class ItemDebugTool extends Item {
|
||||||
BlockEntity blockEntity = context.getWorld().getBlockEntity(context.getBlockPos());
|
BlockEntity blockEntity = context.getWorld().getBlockEntity(context.getBlockPos());
|
||||||
if (blockEntity != null) {
|
if (blockEntity != null) {
|
||||||
sendMessage(context, new LiteralText(getBlockEntityType(blockEntity)));
|
sendMessage(context, new LiteralText(getBlockEntityType(blockEntity)));
|
||||||
if (blockEntity instanceof EnergyBlockEntity) {
|
if (Energy.valid(blockEntity)) {
|
||||||
sendMessage(context, new LiteralText(getRCPower((EnergyBlockEntity) blockEntity)));
|
sendMessage(context, new LiteralText(getRCPower(blockEntity)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
|
@ -109,13 +109,13 @@ public class ItemDebugTool extends Item {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getRCPower(EnergyBlockEntity blockEntity) {
|
private String getRCPower(BlockEntity blockEntity) {
|
||||||
String s = "" + Formatting.GREEN;
|
String s = "" + Formatting.GREEN;
|
||||||
s += "Power: ";
|
s += "Power: ";
|
||||||
s += Formatting.BLUE;
|
s += Formatting.BLUE;
|
||||||
s += PowerSystem.getLocaliszedPower(blockEntity.getEnergy());
|
s += PowerSystem.getLocaliszedPower(Energy.of(blockEntity).getEnergy());
|
||||||
s += "/";
|
s += "/";
|
||||||
s += PowerSystem.getLocaliszedPower(blockEntity.getMaxPower());
|
s += PowerSystem.getLocaliszedPower(Energy.of(blockEntity).getMaxStored());
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,17 +31,19 @@ import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.item.*;
|
import net.minecraft.item.*;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemDrill extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
public int maxCharge = 1;
|
public int maxCharge = 1;
|
||||||
public int cost = 250;
|
public int cost = 250;
|
||||||
|
@ -57,7 +59,7 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
|
||||||
// ItemPickaxe
|
// ItemPickaxe
|
||||||
@Override
|
@Override
|
||||||
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
||||||
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (Energy.of(stack).getEnergy() < cost) {
|
||||||
return unpoweredSpeed;
|
return unpoweredSpeed;
|
||||||
}
|
}
|
||||||
if (Items.WOODEN_PICKAXE.getMiningSpeed(stack, state) > 1.0F
|
if (Items.WOODEN_PICKAXE.getMiningSpeed(stack, state) > 1.0F
|
||||||
|
@ -73,10 +75,8 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
|
||||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
Energy.of(stack).use(cost);
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -109,17 +109,22 @@ public class ItemDrill extends PickaxeItem implements IEnergyItemInfo, ItemDurab
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,16 +35,19 @@ import net.minecraft.item.PickaxeItem;
|
||||||
import net.minecraft.item.ToolMaterials;
|
import net.minecraft.item.ToolMaterials;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemJackhammer extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
public int maxCharge = 1;
|
public int maxCharge = 1;
|
||||||
public int cost = 250;
|
public int cost = 250;
|
||||||
|
@ -58,7 +61,7 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
// ItemPickaxe
|
// ItemPickaxe
|
||||||
@Override
|
@Override
|
||||||
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
||||||
if (Block.isNaturalStone(state.getBlock()) && new ItemPowerManager(stack).getEnergyStored() >= cost) {
|
if (Block.isNaturalStone(state.getBlock()) && Energy.of(stack).getEnergy() >= cost) {
|
||||||
return miningSpeed;
|
return miningSpeed;
|
||||||
} else {
|
} else {
|
||||||
return 0.5F;
|
return 0.5F;
|
||||||
|
@ -70,10 +73,8 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
Energy.of(stack).use(cost);
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -107,17 +108,22 @@ public class ItemJackhammer extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.MEDIUM;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,19 +35,21 @@ import net.minecraft.item.*;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemRockCutter extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
public static final int maxCharge = TechRebornConfig.rockCutterCharge;
|
public static final int maxCharge = TechRebornConfig.rockCutterCharge;
|
||||||
public int transferLimit = 1_000;
|
public int transferLimit = 1_000;
|
||||||
|
@ -69,7 +71,7 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
public float getMiningSpeed(ItemStack stack, BlockState state) {
|
||||||
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (Energy.of(stack).getEnergy() < cost) {
|
||||||
return 2F;
|
return 2F;
|
||||||
} else {
|
} else {
|
||||||
return Items.DIAMOND_PICKAXE.getMiningSpeed(stack, state);
|
return Items.DIAMOND_PICKAXE.getMiningSpeed(stack, state);
|
||||||
|
@ -81,10 +83,8 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
if (rand.nextInt(EnchantmentHelper.getLevel(Enchantments.UNBREAKING, stack) + 1) == 0) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
Energy.of(stack).use(cost);
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -135,8 +135,7 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
uncharged.addEnchantment(Enchantments.SILK_TOUCH, 1);
|
uncharged.addEnchantment(Enchantments.SILK_TOUCH, 1);
|
||||||
ItemStack charged = new ItemStack(TRContent.ROCK_CUTTER);
|
ItemStack charged = new ItemStack(TRContent.ROCK_CUTTER);
|
||||||
charged.addEnchantment(Enchantments.SILK_TOUCH, 1);
|
charged.addEnchantment(Enchantments.SILK_TOUCH, 1);
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(charged);
|
Energy.of(charged).set(Energy.of(charged).getMaxStored());
|
||||||
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
|
|
||||||
|
|
||||||
itemList.add(uncharged);
|
itemList.add(uncharged);
|
||||||
itemList.add(charged);
|
itemList.add(charged);
|
||||||
|
@ -144,17 +143,22 @@ public class ItemRockCutter extends PickaxeItem implements IEnergyItemInfo, Item
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,19 +30,19 @@ import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.utils.InitUtils;
|
import techreborn.utils.InitUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by modmuss50 on 05/11/2016.
|
* Created by modmuss50 on 05/11/2016.
|
||||||
*/
|
*/
|
||||||
public class ItemElectricTreetap extends Item implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemElectricTreetap extends Item implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
public static final int maxCharge = 10_000;
|
public static final int maxCharge = 10_000;
|
||||||
public int cost = 20;
|
public int cost = 20;
|
||||||
|
@ -77,17 +77,12 @@ public class ItemElectricTreetap extends Item implements IEnergyItemInfo, ItemDu
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
return 200;
|
return EnergyTier.MEDIUM;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMaxOutput() {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,10 +44,10 @@ import net.minecraft.util.*;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.util.ChatUtils;
|
import reborncore.common.util.ChatUtils;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.items.tool.ItemChainsaw;
|
import techreborn.items.tool.ItemChainsaw;
|
||||||
|
@ -117,7 +117,7 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
|
||||||
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
||||||
final ItemStack stack = player.getStackInHand(hand);
|
final ItemStack stack = player.getStackInHand(hand);
|
||||||
if (player.isSneaking()) {
|
if (player.isSneaking()) {
|
||||||
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (Energy.of(stack).getEnergy() < cost) {
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
||||||
|
@ -148,7 +148,7 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void usageTick(World world, LivingEntity entity, ItemStack stack, int i) {
|
public void usageTick(World world, LivingEntity entity, ItemStack stack, int i) {
|
||||||
if (ItemUtils.isActive(stack) && new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (ItemUtils.isActive(stack) && Energy.of(stack).getEnergy() < cost) {
|
||||||
if(entity.world.isClient){
|
if(entity.world.isClient){
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
|
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
|
||||||
|
@ -178,24 +178,21 @@ public class ItemIndustrialChainsaw extends ItemChainsaw {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
if(Energy.of(stack).use(cost)){
|
||||||
if (capEnergy.getEnergyStored() < cost) {
|
BlockState blockState = world.getBlockState(pos);
|
||||||
return;
|
if (blockState.getHardness(world, pos) == -1.0F) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!(entityLiving instanceof PlayerEntity)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||||
|
|
||||||
|
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
|
||||||
|
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
||||||
|
world.removeBlockEntity(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
BlockState blockState = world.getBlockState(pos);
|
|
||||||
if (blockState.getHardness(world, pos) == -1.0F) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(!(entityLiving instanceof PlayerEntity)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
|
|
||||||
|
|
||||||
blockState.getBlock().afterBreak(world, (PlayerEntity) entityLiving, pos, blockState, world.getBlockEntity(pos), stack);
|
|
||||||
world.setBlockState(pos, Blocks.AIR.getDefaultState());
|
|
||||||
world.removeBlockEntity(pos);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,10 +47,10 @@ import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.world.RayTraceContext;
|
import net.minecraft.world.RayTraceContext;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.util.ChatUtils;
|
import reborncore.common.util.ChatUtils;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
import techreborn.items.tool.ItemDrill;
|
import techreborn.items.tool.ItemDrill;
|
||||||
|
@ -121,11 +121,8 @@ public class ItemIndustrialDrill extends ItemDrill {
|
||||||
private void breakBlock(BlockPos pos, World world, PlayerEntity playerIn, ItemStack drill) {
|
private void breakBlock(BlockPos pos, World world, PlayerEntity playerIn, ItemStack drill) {
|
||||||
BlockState blockState = world.getBlockState(pos);
|
BlockState blockState = world.getBlockState(pos);
|
||||||
|
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(drill);
|
if(Energy.of(drill).use(cost)){
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(drill, playerIn);
|
||||||
if(capEnergy.getEnergyStored() > cost){
|
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, playerIn);
|
|
||||||
|
|
||||||
blockState.getBlock().onBlockRemoved(blockState, world, pos, blockState, true);
|
blockState.getBlock().onBlockRemoved(blockState, world, pos, blockState, true);
|
||||||
blockState.getBlock().afterBreak(world, playerIn, pos, blockState, world.getBlockEntity(pos), drill);
|
blockState.getBlock().afterBreak(world, playerIn, pos, blockState, world.getBlockEntity(pos), drill);
|
||||||
|
@ -176,7 +173,7 @@ public class ItemIndustrialDrill extends ItemDrill {
|
||||||
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
||||||
final ItemStack stack = player.getStackInHand(hand);
|
final ItemStack stack = player.getStackInHand(hand);
|
||||||
if (player.isSneaking()) {
|
if (player.isSneaking()) {
|
||||||
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (Energy.of(stack).getEnergy() < cost) {
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
||||||
|
@ -207,7 +204,7 @@ public class ItemIndustrialDrill extends ItemDrill {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void usageTick(World world, LivingEntity entity, ItemStack stack, int i) {
|
public void usageTick(World world, LivingEntity entity, ItemStack stack, int i) {
|
||||||
if (ItemUtils.isActive(stack) && new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (ItemUtils.isActive(stack) && Energy.of(stack).getEnergy() < cost) {
|
||||||
if(entity.world.isClient){
|
if(entity.world.isClient){
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
|
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
|
||||||
|
|
|
@ -28,13 +28,11 @@ import com.google.common.collect.Multimap;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.client.item.TooltipContext;
|
import net.minecraft.client.item.TooltipContext;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EquipmentSlot;
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
import net.minecraft.entity.attribute.EntityAttributeModifier;
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
import reborncore.api.items.ItemStackModifiers;
|
|
||||||
import reborncore.common.util.StringUtils;
|
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
import net.minecraft.entity.LivingEntity;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.*;
|
import net.minecraft.item.*;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
@ -43,13 +41,17 @@ import net.minecraft.text.Text;
|
||||||
import net.minecraft.text.TranslatableText;
|
import net.minecraft.text.TranslatableText;
|
||||||
import net.minecraft.util.*;
|
import net.minecraft.util.*;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
import reborncore.api.items.ItemStackModifiers;
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ChatUtils;
|
import reborncore.common.util.ChatUtils;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
|
import reborncore.common.util.StringUtils;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
|
@ -58,7 +60,7 @@ import techreborn.utils.MessageIDs;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDurabilityExtensions, ItemStackModifiers {
|
public class ItemNanosaber extends SwordItem implements EnergyHolder, ItemDurabilityExtensions, ItemStackModifiers {
|
||||||
public static final int maxCharge = TechRebornConfig.nanoSaberCharge;
|
public static final int maxCharge = TechRebornConfig.nanoSaberCharge;
|
||||||
public int transferLimit = 1_000;
|
public int transferLimit = 1_000;
|
||||||
public int cost = 250;
|
public int cost = 250;
|
||||||
|
@ -75,8 +77,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
||||||
@Nullable
|
@Nullable
|
||||||
LivingEntity entityIn) {
|
LivingEntity entityIn) {
|
||||||
if (ItemUtils.isActive(stack)) {
|
if (ItemUtils.isActive(stack)) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
if (Energy.of(stack).getMaxStored() - Energy.of(stack).getEnergy() >= 0.9 * Energy.of(stack).getMaxStored()) {
|
||||||
if (capEnergy.getMaxEnergyStored() - capEnergy.getEnergyStored() >= 0.9 * capEnergy.getMaxEnergyStored()) {
|
|
||||||
return 0.5F;
|
return 0.5F;
|
||||||
}
|
}
|
||||||
return 1.0F;
|
return 1.0F;
|
||||||
|
@ -89,14 +90,9 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
||||||
// ItemSword
|
// ItemSword
|
||||||
@Override
|
@Override
|
||||||
public boolean postHit(ItemStack stack, LivingEntity entityHit, LivingEntity entityHitter) {
|
public boolean postHit(ItemStack stack, LivingEntity entityHit, LivingEntity entityHitter) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
boolean used = Energy.of(stack).use(cost);
|
||||||
if (capEnergy.getEnergyStored() >= cost) {
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityHitter);
|
||||||
capEnergy.useEnergy(cost, false);
|
return used;
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityHitter);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -114,7 +110,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
||||||
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
public TypedActionResult<ItemStack> use(final World world, final PlayerEntity player, final Hand hand) {
|
||||||
final ItemStack stack = player.getStackInHand(hand);
|
final ItemStack stack = player.getStackInHand(hand);
|
||||||
if (player.isSneaking()) {
|
if (player.isSneaking()) {
|
||||||
if (new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (Energy.of(stack).getEnergy() < cost) {
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyErrorTo") + " "
|
||||||
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
+ Formatting.GOLD + StringUtils.t("techreborn.message.nanosaberActivate")));
|
||||||
|
@ -145,7 +141,7 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) {
|
||||||
if (ItemUtils.isActive(stack) && new ItemPowerManager(stack).getEnergyStored() < cost) {
|
if (ItemUtils.isActive(stack) && Energy.of(stack).getEnergy() < cost) {
|
||||||
if(worldIn.isClient){
|
if(worldIn.isClient){
|
||||||
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
ChatUtils.sendNoSpamMessages(MessageIDs.nanosaberID, new LiteralText(
|
||||||
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
|
Formatting.GRAY + StringUtils.t("techreborn.message.nanosaberEnergyError") + " "
|
||||||
|
@ -189,14 +185,12 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
||||||
ItemStack inactiveCharged = new ItemStack(TRContent.NANOSABER);
|
ItemStack inactiveCharged = new ItemStack(TRContent.NANOSABER);
|
||||||
inactiveCharged.setTag(new CompoundTag());
|
inactiveCharged.setTag(new CompoundTag());
|
||||||
inactiveCharged.getTag().putBoolean("isActive", false);
|
inactiveCharged.getTag().putBoolean("isActive", false);
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(inactiveCharged);
|
Energy.of(inactiveCharged).set(Energy.of(inactiveCharged).getMaxStored());
|
||||||
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
|
|
||||||
|
|
||||||
ItemStack activeCharged = new ItemStack(TRContent.NANOSABER);
|
ItemStack activeCharged = new ItemStack(TRContent.NANOSABER);
|
||||||
activeCharged.setTag(new CompoundTag());
|
activeCharged.setTag(new CompoundTag());
|
||||||
activeCharged.getTag().putBoolean("isActive", true);
|
activeCharged.getTag().putBoolean("isActive", true);
|
||||||
ItemPowerManager capEnergy2 = new ItemPowerManager(activeCharged);
|
Energy.of(activeCharged).set(Energy.of(activeCharged).getMaxStored());
|
||||||
capEnergy2.setEnergyStored(capEnergy2.getMaxEnergyStored());
|
|
||||||
|
|
||||||
itemList.add(inactiveUncharged);
|
itemList.add(inactiveUncharged);
|
||||||
itemList.add(inactiveCharged);
|
itemList.add(inactiveCharged);
|
||||||
|
@ -215,17 +209,22 @@ public class ItemNanosaber extends SwordItem implements IEnergyItemInfo, ItemDur
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,26 +26,28 @@ package techreborn.items.tool.industrial;
|
||||||
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.text.LiteralText;
|
|
||||||
import net.minecraft.text.Text;
|
|
||||||
import net.minecraft.util.Formatting;
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.item.TooltipContext;
|
import net.minecraft.client.item.TooltipContext;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.damage.DamageSource;
|
import net.minecraft.entity.damage.DamageSource;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.*;
|
import net.minecraft.item.*;
|
||||||
|
import net.minecraft.text.LiteralText;
|
||||||
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
import net.minecraft.util.DefaultedList;
|
import net.minecraft.util.DefaultedList;
|
||||||
|
import net.minecraft.util.Formatting;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import reborncore.api.power.IEnergyItemInfo;
|
|
||||||
import reborncore.api.power.ItemPowerManager;
|
|
||||||
import reborncore.common.powerSystem.ExternalPowerSystems;
|
import reborncore.common.powerSystem.ExternalPowerSystems;
|
||||||
import reborncore.common.powerSystem.PowerSystem;
|
import reborncore.common.powerSystem.PowerSystem;
|
||||||
import reborncore.common.util.ItemDurabilityExtensions;
|
import reborncore.common.util.ItemDurabilityExtensions;
|
||||||
import reborncore.common.util.ItemUtils;
|
import reborncore.common.util.ItemUtils;
|
||||||
import reborncore.common.util.TorchHelper;
|
import reborncore.common.util.TorchHelper;
|
||||||
|
import team.reborn.energy.Energy;
|
||||||
|
import team.reborn.energy.EnergyHolder;
|
||||||
|
import team.reborn.energy.EnergySide;
|
||||||
|
import team.reborn.energy.EnergyTier;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
import techreborn.config.TechRebornConfig;
|
import techreborn.config.TechRebornConfig;
|
||||||
import techreborn.init.TRContent;
|
import techreborn.init.TRContent;
|
||||||
|
@ -54,7 +56,7 @@ import techreborn.utils.InitUtils;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDurabilityExtensions {
|
public class ItemOmniTool extends PickaxeItem implements EnergyHolder, ItemDurabilityExtensions {
|
||||||
|
|
||||||
public static final int maxCharge = TechRebornConfig.omniToolCharge;
|
public static final int maxCharge = TechRebornConfig.omniToolCharge;
|
||||||
public int transferLimit = 1_000;
|
public int transferLimit = 1_000;
|
||||||
|
@ -77,11 +79,8 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
|
||||||
// ItemTool
|
// ItemTool
|
||||||
@Override
|
@Override
|
||||||
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
public boolean postMine(ItemStack stack, World worldIn, BlockState blockIn, BlockPos pos, LivingEntity entityLiving) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
Energy.of(stack).use(cost);
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityLiving);
|
||||||
capEnergy.useEnergy(cost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityLiving);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,13 +107,10 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean postHit(ItemStack stack, LivingEntity entityliving, LivingEntity attacker) {
|
public boolean postHit(ItemStack stack, LivingEntity entityliving, LivingEntity attacker) {
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(stack);
|
if(Energy.of(stack).use(hitCost)) {
|
||||||
if (capEnergy.getEnergyStored() >= hitCost) {
|
|
||||||
capEnergy.useEnergy(hitCost, false);
|
|
||||||
ExternalPowerSystems.requestEnergyFromArmor(capEnergy, entityliving);
|
|
||||||
|
|
||||||
entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F);
|
entityliving.damage(DamageSource.player((PlayerEntity) attacker), 8F);
|
||||||
}
|
}
|
||||||
|
ExternalPowerSystems.requestEnergyFromArmor(stack, entityliving);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,17 +159,22 @@ public class ItemOmniTool extends PickaxeItem implements IEnergyItemInfo, ItemDu
|
||||||
|
|
||||||
// IEnergyItemInfo
|
// IEnergyItemInfo
|
||||||
@Override
|
@Override
|
||||||
public int getCapacity() {
|
public double getMaxStoredPower() {
|
||||||
return maxCharge;
|
return maxCharge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxInput() {
|
public double getMaxInput(EnergySide side) {
|
||||||
return transferLimit;
|
return transferLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaxOutput() {
|
public double getMaxOutput(EnergySide side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnergyTier getTier() {
|
||||||
|
return EnergyTier.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
package techreborn.utils;
|
package techreborn.utils;
|
||||||
|
|
||||||
import io.github.prospector.silk.fluid.FluidInstance;
|
import reborncore.common.fluid.container.FluidInstance;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.fluid.Fluid;
|
import net.minecraft.fluid.Fluid;
|
||||||
import net.minecraft.fluid.Fluids;
|
import net.minecraft.fluid.Fluids;
|
||||||
|
@ -66,7 +66,7 @@ public class FluidUtils {
|
||||||
FluidInstance targetFluidInstance = target.getFluidInstance(null);
|
FluidInstance targetFluidInstance = target.getFluidInstance(null);
|
||||||
Fluid currentFluid = targetFluidInstance.getFluid();
|
Fluid currentFluid = targetFluidInstance.getFluid();
|
||||||
|
|
||||||
if(currentFluid == Fluids.EMPTY || currentFluid == itemFluidInfo.getFluid(inputStack)) {
|
if(targetFluidInstance.isEmpty() || currentFluid == itemFluidInfo.getFluid(inputStack)) {
|
||||||
int freeSpace = target.getCapacity(null) - targetFluidInstance.getAmount();
|
int freeSpace = target.getCapacity(null) - targetFluidInstance.getAmount();
|
||||||
|
|
||||||
if(!outputStack.isEmpty()){
|
if(!outputStack.isEmpty()){
|
||||||
|
|
|
@ -37,7 +37,7 @@ import net.minecraft.util.DefaultedList;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import reborncore.RebornRegistry;
|
import reborncore.RebornRegistry;
|
||||||
import reborncore.api.power.ItemPowerManager;
|
import team.reborn.energy.Energy;
|
||||||
import techreborn.TechReborn;
|
import techreborn.TechReborn;
|
||||||
|
|
||||||
public class InitUtils {
|
public class InitUtils {
|
||||||
|
@ -59,8 +59,8 @@ public class InitUtils {
|
||||||
public static void initPoweredItems(Item item, DefaultedList<ItemStack> itemList) {
|
public static void initPoweredItems(Item item, DefaultedList<ItemStack> itemList) {
|
||||||
ItemStack uncharged = new ItemStack(item);
|
ItemStack uncharged = new ItemStack(item);
|
||||||
ItemStack charged = new ItemStack(item);
|
ItemStack charged = new ItemStack(item);
|
||||||
ItemPowerManager capEnergy = new ItemPowerManager(charged);
|
|
||||||
capEnergy.setEnergyStored(capEnergy.getMaxEnergyStored());
|
Energy.of(charged).set(Energy.of(charged).getMaxStored());
|
||||||
|
|
||||||
itemList.add(uncharged);
|
itemList.add(uncharged);
|
||||||
itemList.add(charged);
|
itemList.add(charged);
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:block/cube_all",
|
|
||||||
"textures": {
|
|
||||||
"all": "techreborn:block/storage/osmium_storage_block"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:aluminum_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/bauxite_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/bauxite_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:bauxite_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/brass_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/brass_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:brass_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/bronze_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/bronze_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:bronze_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/chrome_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/chrome_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:chrome_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/cinnabar_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/cinnabar_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:cinnabar_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/copper_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/copper_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:copper_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/copper_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/copper_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:copper_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:electrum_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/galena_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/galena_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:galena_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/invar_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/invar_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:invar_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/iridium_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/iridium_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:iridium_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/iridium_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/iridium_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:iridium_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:iridium_reinforced_stone_storage_block"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:iridium_reinforced_tungstensteel_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/lead_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/lead_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:lead_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/lead_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/lead_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:lead_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/nickel_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/nickel_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:nickel_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/peridot_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/peridot_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:peridot_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/peridot_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/peridot_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:peridot_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:platinum_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/pyrite_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/pyrite_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:pyrite_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:red_garnet_storage_block"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:refined_iron_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/ruby_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/ruby_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:ruby_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/ruby_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/ruby_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:ruby_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:sapphire_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/sapphire_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/sapphire_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:sapphire_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:sheldonite_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/silver_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/silver_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:silver_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/silver_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/silver_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:silver_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/sodalite_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/sodalite_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:sodalite_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:sphalerite_ore"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/steel_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/steel_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:steel_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/tin_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/tin_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:tin_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/tin_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/tin_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:tin_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:titanium_storage_block"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:tungsten_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/tungsten_ore.json
Normal file
6
src/main/resources/data/c/tags/blocks/tungsten_ore.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:tungsten_ore"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:tungstensteel_storage_block"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:yellow_garnet_storage_block"
|
||||||
|
]
|
||||||
|
}
|
6
src/main/resources/data/c/tags/blocks/zinc_block.json
Normal file
6
src/main/resources/data/c/tags/blocks/zinc_block.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"techreborn:zinc_storage_block"
|
||||||
|
]
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue