397
This commit is contained in:
parent
e8396dbc33
commit
d18d1b820e
65 changed files with 287 additions and 520 deletions
|
@ -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() {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)) {
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -431,7 +431,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor
|
|||
|
||||
// ItemHandlerProvider
|
||||
@Override
|
||||
public IItemHandler getInventory() {
|
||||
public Inventory getInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue