This commit is contained in:
modmuss50 2019-06-04 12:05:18 +01:00
parent e8396dbc33
commit d18d1b820e
65 changed files with 287 additions and 520 deletions

View file

@ -218,22 +218,6 @@ public class TileTechStorageBase extends TileMachineBase
return tagCompound;
}
@Nonnull
@Override
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap) {
if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
return LazyOptional.of(new NonNullSupplier<T>() {
@Nonnull
@Override
public T get() {
return (T) inventory;
}
});
}
return super.getCapability(cap);
}
// ItemHandlerProvider
@Override
public Inventory<TileTechStorageBase> getInventory() {

View file

@ -34,7 +34,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.util.ITickable;
import net.minecraft.util.Tickable;
import net.minecraft.util.math.Direction;
@ -57,7 +57,7 @@ import java.util.List;
*/
public class TileCable extends BlockEntity
implements ITickable, IEnergyStorage, IListInfoProvider, IToolDrop {
implements Tickable, IEnergyStorage, IListInfoProvider, IToolDrop {
public int power = 0;
private int transferRate = 0;
@ -84,14 +84,6 @@ public class TileCable extends BlockEntity
}
return canReceive();
}
@Override
public <T> LazyOptional<T> getCapability(Capability<T> capability) {
if (capability == CapabilityEnergy.ENERGY) {
return LazyOptional.of(() -> (T)this);
}
return super.getCapability(capability);
}
@Override
public CompoundTag toInitialChunkDataTag() {
@ -151,37 +143,39 @@ public class TileCable extends BlockEntity
return;
}
ArrayList<IEnergyStorage> acceptors = new ArrayList<IEnergyStorage>();
for (Direction face : Direction.values()) {
BlockEntity tile = world.getBlockEntity(pos.offset(face));
//TODO needs a full recode to not use a specific power net
if (tile == null) {
continue;
} else if (tile instanceof TileCable) {
TileCable cable = (TileCable) tile;
if (power > cable.power && cable.canReceiveFromFace(face.getOpposite())) {
acceptors.add((IEnergyStorage) tile);
if (!sendingFace.contains(face)) {
sendingFace.add(face);
}
}
} else if (tile.getCapability(CapabilityEnergy.ENERGY, face.getOpposite()).isPresent()) {
IEnergyStorage energyTile = tile.getCapability(CapabilityEnergy.ENERGY, face.getOpposite()).orElse(null);
if (energyTile != null && energyTile.canReceive()) {
acceptors.add(energyTile);
}
}
}
if (acceptors.size() > 0 ) {
for (IEnergyStorage tile : acceptors) {
int drain = Math.min(power, transferRate);
if (drain > 0 && tile.receiveEnergy(drain, true) > 0) {
int move = tile.receiveEnergy(drain, false);
extractEnergy(move, false);
}
}
}
// ArrayList<IEnergyStorage> acceptors = new ArrayList<IEnergyStorage>();
// for (Direction face : Direction.values()) {
// BlockEntity tile = world.getBlockEntity(pos.offset(face));
//
// if (tile == null) {
// continue;
// } else if (tile instanceof TileCable) {
// TileCable cable = (TileCable) tile;
// if (power > cable.power && cable.canReceiveFromFace(face.getOpposite())) {
// acceptors.add((IEnergyStorage) tile);
// if (!sendingFace.contains(face)) {
// sendingFace.add(face);
// }
// }
// } else if (tile.getCapability(CapabilityEnergy.ENERGY, face.getOpposite()).isPresent()) {
// IEnergyStorage energyTile = tile.getCapability(CapabilityEnergy.ENERGY, face.getOpposite()).orElse(null);
// if (energyTile != null && energyTile.canReceive()) {
// acceptors.add(energyTile);
// }
// }
// }
//
// if (acceptors.size() > 0 ) {
// for (IEnergyStorage tile : acceptors) {
// int drain = Math.min(power, transferRate);
// if (drain > 0 && tile.receiveEnergy(drain, true) > 0) {
// int move = tile.receiveEnergy(drain, false);
// extractEnergy(move, false);
// }
// }
// }
}
// IEnergyStorage

View file

@ -32,13 +32,14 @@ import reborncore.api.IToolDrop;
import reborncore.api.tile.ItemHandlerProvider;
import reborncore.common.blocks.BlockMachineBase;
import reborncore.common.powerSystem.TilePowerAcceptor;
import reborncore.common.util.FluidUtils;
import reborncore.common.util.Inventory;
import reborncore.common.util.Tank;
import reborncore.fluid.FluidStack;
import techreborn.api.generator.EFluidGenerator;
import techreborn.api.generator.FluidGeneratorRecipe;
import techreborn.api.generator.FluidGeneratorRecipeList;
import techreborn.api.generator.GeneratorRecipeHelper;
import techreborn.utils.FluidUtils;
import javax.annotation.Nullable;

View file

@ -34,7 +34,7 @@ import reborncore.client.containerBuilder.IContainerProvider;
import reborncore.client.containerBuilder.builder.BuiltContainer;
import reborncore.client.containerBuilder.builder.ContainerBuilder;
import reborncore.common.crafting.RebornIngredient;
import reborncore.common.crafting.Recipe;
import reborncore.common.crafting.RebornRecipe;
import reborncore.common.registration.RebornRegister;
import reborncore.common.tile.TileMachineBase;
import reborncore.common.util.Inventory;
@ -71,7 +71,7 @@ public class TileIronAlloyFurnace extends TileMachineBase
if (stack.isEmpty()) {
return 0;
} else {
return FurnaceBlockEntity.getBurnTimes().getOrDefault(stack.getItem(), 0);
return FurnaceBlockEntity.createFuelTimeMap().getOrDefault(stack.getItem(), 0);
}
}
@ -115,7 +115,7 @@ public class TileIronAlloyFurnace extends TileMachineBase
}
}
public boolean hasAllInputs(final Recipe recipeType) {
public boolean hasAllInputs(final RebornRecipe recipeType) {
if (recipeType == null) {
return false;
}
@ -137,7 +137,7 @@ public class TileIronAlloyFurnace extends TileMachineBase
return false;
} else {
ItemStack itemstack = null;
for (final Recipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) {
for (final RebornRecipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) {
if (this.hasAllInputs(recipeType)) {
itemstack = recipeType.getOutputs().get(0);
break;
@ -169,7 +169,7 @@ public class TileIronAlloyFurnace extends TileMachineBase
public void smeltItem() {
if (this.canSmelt()) {
ItemStack itemstack = ItemStack.EMPTY;
for (final Recipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) {
for (final RebornRecipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) {
if (this.hasAllInputs(recipeType)) {
itemstack = recipeType.getOutputs().get(0);
break;
@ -185,7 +185,7 @@ public class TileIronAlloyFurnace extends TileMachineBase
inventory.shrinkSlot(this.output, -itemstack.getAmount());
}
for (final Recipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) {
for (final RebornRecipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) {
boolean hasAllRecipes = true;
if (this.hasAllInputs(recipeType)) {

View file

@ -42,6 +42,7 @@ import techreborn.api.fluidreplicator.FluidReplicatorRecipeCrafter;
import techreborn.init.TRContent;
import techreborn.init.TRTileEntities;
import techreborn.tiles.TileGenericMachine;
import techreborn.utils.FluidUtils;
import javax.annotation.Nullable;

View file

@ -38,7 +38,6 @@ import reborncore.client.containerBuilder.builder.ContainerBuilder;
import reborncore.common.recipes.RecipeCrafter;
import reborncore.common.registration.RebornRegister;
import reborncore.common.registration.config.ConfigRegistry;
import reborncore.common.util.FluidUtils;
import reborncore.common.util.IInventoryAccess;
import reborncore.common.util.Inventory;
import reborncore.common.util.Tank;
@ -47,6 +46,7 @@ import techreborn.init.ModRecipes;
import techreborn.init.TRContent;
import techreborn.init.TRTileEntities;
import techreborn.tiles.TileGenericMachine;
import techreborn.utils.FluidUtils;
import javax.annotation.Nullable;

View file

@ -431,7 +431,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor
// ItemHandlerProvider
@Override
public IItemHandler getInventory() {
public Inventory getInventory() {
return inventory;
}

View file

@ -39,6 +39,7 @@ import techreborn.init.TRContent;
import techreborn.init.TRTileEntities;
import java.util.Iterator;
import java.util.function.Consumer;
@RebornRegister(TechReborn.MOD_ID)
public class TilePlayerDectector extends TilePowerAcceptor implements IToolDrop {
@ -69,7 +70,7 @@ public class TilePlayerDectector extends TilePowerAcceptor implements IToolDrop
boolean lastRedstone = redstone;
redstone = false;
if (canUseEnergy(euPerTick)) {
Iterator<PlayerEntity> tIterator = super.world.playerEntities.iterator();
Iterator<PlayerEntity> tIterator = super.world.getPlayers().iterator();
while (tIterator.hasNext()) {
PlayerEntity player = tIterator.next();
if (player.squaredEnvTypeanceTo((double) super.getPos().getX() + 0.5D,