Tile -> BlockEntity + some more refactors

This commit is contained in:
modmuss50 2019-07-22 12:45:13 +01:00
parent 7f8674f1ca
commit dbc89adaf7
193 changed files with 3194 additions and 3214 deletions

View file

@ -27,7 +27,7 @@ package techreborn.api.fluidreplicator;
import net.minecraft.util.math.BlockPos;
import reborncore.fluid.Fluid;
import techreborn.init.TRContent;
import techreborn.tiles.machine.multiblock.TileFluidReplicator;
import techreborn.blockentity.machine.multiblock.FluidReplicatorBlockEntity;
import techreborn.utils.FluidUtils;
import javax.annotation.Nonnull;
@ -105,19 +105,19 @@ public class FluidReplicatorRecipe implements Cloneable {
return false;
}
public boolean canCraft(TileFluidReplicator tile) {
if (!tile.getMultiBlock()) {
public boolean canCraft(FluidReplicatorBlockEntity blockEntity) {
if (!blockEntity.getMultiBlock()) {
return false;
}
final BlockPos hole = tile.getPos().offset(tile.getFacing().getOpposite(), 2);
final Fluid fluid = techreborn.utils.FluidUtils.fluidFromBlock(tile.getWorld().getBlockState(hole).getBlock());
final BlockPos hole = blockEntity.getPos().offset(blockEntity.getFacing().getOpposite(), 2);
final Fluid fluid = techreborn.utils.FluidUtils.fluidFromBlock(blockEntity.getWorld().getBlockState(hole).getBlock());
if (fluid == null) {
return false;
}
if (!FluidUtils.fluidEquals(fluid, output)) {
return false;
}
final Fluid tankFluid = tile.tank.getFluidType();
final Fluid tankFluid = blockEntity.tank.getFluidType();
if (tankFluid != null && !FluidUtils.fluidEquals(tankFluid, fluid)) {
return false;
}
@ -125,7 +125,7 @@ public class FluidReplicatorRecipe implements Cloneable {
return true;
}
public boolean onCraft(TileFluidReplicator tile) {
public boolean onCraft(FluidReplicatorBlockEntity blockEntity) {
return true;
}

View file

@ -33,7 +33,7 @@ import reborncore.fluid.Fluid;
import reborncore.fluid.FluidStack;
import techreborn.init.ModRecipes;
import techreborn.init.TRContent;
import techreborn.tiles.machine.multiblock.TileFluidReplicator;
import techreborn.blockentity.machine.multiblock.FluidReplicatorBlockEntity;
/**
* @author drcrazy
@ -47,13 +47,13 @@ public class FluidReplicatorRecipeCrafter extends RecipeCrafter {
/**
* RecipeCrafter for Fluid Replicator
*
* @param parentTile TileEntity Reference to the tile having this crafter
* @param parent BlockEntity Reference to the blockEntity having this crafter
* @param inventory Inventory reference to inventory used for crafting
* @param inputSlots This is the list of the slots that the crafting logic should look for the input UU-Matter.
* @param outputSlots This is the list of slots that the crafting logic should look for output fluid
*/
public FluidReplicatorRecipeCrafter(BlockEntity parentTile, RebornInventory<?> inventory, int[] inputSlots, int[] outputSlots) {
super(ModRecipes.FLUID_REPLICATOR, parentTile, 1, 1, inventory, inputSlots, outputSlots);
public FluidReplicatorRecipeCrafter(BlockEntity parent, RebornInventory<?> inventory, int[] inputSlots, int[] outputSlots) {
super(ModRecipes.FLUID_REPLICATOR, parent, 1, 1, inventory, inputSlots, outputSlots);
}
/**
@ -92,7 +92,7 @@ public class FluidReplicatorRecipeCrafter extends RecipeCrafter {
// RecipeCrafter
@Override
public void updateEntity() {
if (tile.getWorld().isClient) {
if (blockEntity.getWorld().isClient) {
return;
}
ticksSinceLastChange++;
@ -114,18 +114,18 @@ public class FluidReplicatorRecipeCrafter extends RecipeCrafter {
}
// If it has reached the recipe tick time
if (currentRecipe != null && currentTickTime >= currentNeededTicks && hasAllInputs()) {
TileFluidReplicator tileFluidReplicator = (TileFluidReplicator) tile;
FluidReplicatorBlockEntity blockEntityFluidReplicator = (FluidReplicatorBlockEntity) blockEntity;
// Checks to see if it can fit the output
// And fill tank with replicated fluid
if (canFit(currentRecipe.getFluid(), tileFluidReplicator.tank) && currentRecipe.onCraft(tileFluidReplicator)) {
tileFluidReplicator.tank.fill(new FluidStack(currentRecipe.getFluid(), 1000), true);
if (canFit(currentRecipe.getFluid(), blockEntityFluidReplicator.tank) && currentRecipe.onCraft(blockEntityFluidReplicator)) {
blockEntityFluidReplicator.tank.fill(new FluidStack(currentRecipe.getFluid(), 1000), true);
// This uses all the inputs
useAllInputs();
// Reset
currentRecipe = null;
currentTickTime = 0;
updateCurrentRecipe();
//Update active state if the tile isnt going to start crafting again
//Update active state if the blockEntity isnt going to start crafting again
if(currentRecipe == null){
setIsActive();
}
@ -137,7 +137,7 @@ public class FluidReplicatorRecipeCrafter extends RecipeCrafter {
// Increase the ticktime
currentTickTime ++;
if(currentTickTime == 1 || currentTickTime % 20 == 0 && soundHanlder != null){
soundHanlder.playSound(false, tile);
soundHanlder.playSound(false, blockEntity);
}
}
}
@ -147,10 +147,10 @@ public class FluidReplicatorRecipeCrafter extends RecipeCrafter {
@Override
public void updateCurrentRecipe() {
TileFluidReplicator tileFluidReplicator = (TileFluidReplicator) tile;
FluidReplicatorBlockEntity blockEntityFluidReplicator = (FluidReplicatorBlockEntity) blockEntity;
for (FluidReplicatorRecipe recipe : FluidReplicatorRecipeList.recipes) {
if (recipe.canCraft(tileFluidReplicator) && hasAllInputs(recipe)) {
if (!canFit(recipe.getFluid(), tileFluidReplicator.tank)) {
if (recipe.canCraft(blockEntityFluidReplicator) && hasAllInputs(recipe)) {
if (!canFit(recipe.getFluid(), blockEntityFluidReplicator.tank)) {
this.currentRecipe = null;
currentTickTime = 0;
setIsActive();
@ -187,10 +187,10 @@ public class FluidReplicatorRecipeCrafter extends RecipeCrafter {
@Override
public boolean canCraftAgain() {
TileFluidReplicator tileFluidReplicator = (TileFluidReplicator) tile;
FluidReplicatorBlockEntity blockEntityFluidReplicator = (FluidReplicatorBlockEntity) blockEntity;
for (FluidReplicatorRecipe recipe : FluidReplicatorRecipeList.recipes) {
if (recipe.canCraft(tileFluidReplicator) && hasAllInputs(recipe)) {
if (!canFit(recipe.getFluid(), tileFluidReplicator.tank)) {
if (recipe.canCraft(blockEntityFluidReplicator) && hasAllInputs(recipe)) {
if (!canFit(recipe.getFluid(), blockEntityFluidReplicator.tank)) {
return false;
}
if (energy.getEnergy() < recipe.getEuTick()) {

View file

@ -39,19 +39,19 @@ import java.util.List;
public class ScrapboxRecipeCrafter extends RecipeCrafter {
/**
* @param parentTile Tile having this crafter
* @param inventory Inventory from parent tile
* @param parent Tile having this crafter
* @param inventory Inventory from parent blockEntity
* @param inputSlots Slot IDs for input
* @param outputSlots Slot IDs for output
*/
public ScrapboxRecipeCrafter(BlockEntity parentTile, RebornInventory<?> inventory, int[] inputSlots, int[] outputSlots) {
super(ModRecipes.SCRAPBOX, parentTile, 1, 1, inventory, inputSlots, outputSlots);
public ScrapboxRecipeCrafter(BlockEntity parent, RebornInventory<?> inventory, int[] inputSlots, int[] outputSlots) {
super(ModRecipes.SCRAPBOX, parent, 1, 1, inventory, inputSlots, outputSlots);
}
@Override
public void updateCurrentRecipe(){
List<RebornRecipe> scrapboxRecipeList = ModRecipes.SCRAPBOX.getRecipes(tile.getWorld());
int random = tile.getWorld().random.nextInt(scrapboxRecipeList.size());
List<RebornRecipe> scrapboxRecipeList = ModRecipes.SCRAPBOX.getRecipes(blockEntity.getWorld());
int random = blockEntity.getWorld().random.nextInt(scrapboxRecipeList.size());
// Sets the current recipe then syncs
setCurrentRecipe(scrapboxRecipeList.get(random));
this.currentNeededTicks = Math.max((int) (currentRecipe.getTime() * (1.0 - getSpeedMultiplier())), 1);

View file

@ -30,7 +30,7 @@ import net.minecraft.util.Identifier;
import net.minecraft.util.JsonHelper;
import reborncore.common.crafting.RebornRecipe;
import reborncore.common.crafting.RebornRecipeType;
import techreborn.tiles.machine.multiblock.TileIndustrialBlastFurnace;
import techreborn.blockentity.machine.multiblock.IndustrialBlastFurnaceBlockEntity;
public class BlastFurnaceRecipe extends RebornRecipe {
@ -53,16 +53,16 @@ public class BlastFurnaceRecipe extends RebornRecipe {
}
@Override
public boolean canCraft(final BlockEntity tile) {
if (tile instanceof TileIndustrialBlastFurnace) {
final TileIndustrialBlastFurnace blastFurnace = (TileIndustrialBlastFurnace) tile;
public boolean canCraft(final BlockEntity blockEntity) {
if (blockEntity instanceof IndustrialBlastFurnaceBlockEntity) {
final IndustrialBlastFurnaceBlockEntity blastFurnace = (IndustrialBlastFurnaceBlockEntity) blockEntity;
return blastFurnace.getHeat() >= heat;
}
return false;
}
@Override
public boolean onCraft(final BlockEntity tile) {
public boolean onCraft(final BlockEntity blockEntity) {
return true;
}
}

View file

@ -29,7 +29,7 @@ import net.minecraft.util.Identifier;
import reborncore.common.crafting.RebornRecipe;
import reborncore.common.crafting.RebornRecipeType;
import reborncore.fluid.FluidStack;
import techreborn.tiles.machine.multiblock.TileIndustrialGrinder;
import techreborn.blockentity.machine.multiblock.IndustrialGrinderBlockEntity;
public class IndustrialGrinderRecipe extends RebornRecipe {
@ -41,13 +41,13 @@ public class IndustrialGrinderRecipe extends RebornRecipe {
}
@Override
public boolean canCraft(final BlockEntity tileEntity) {
TileIndustrialGrinder tile = (TileIndustrialGrinder) tileEntity;
if (!tile.getMultiBlock()) {
public boolean canCraft(final BlockEntity be) {
IndustrialGrinderBlockEntity blockEntity = (IndustrialGrinderBlockEntity) be;
if (!blockEntity.getMultiBlock()) {
return false;
}
final FluidStack recipeFluid = fluidStack;
final FluidStack tankFluid = tile.tank.getFluid();
final FluidStack tankFluid = blockEntity.tank.getFluid();
if (fluidStack == null) {
return true;
}
@ -63,10 +63,10 @@ public class IndustrialGrinderRecipe extends RebornRecipe {
}
@Override
public boolean onCraft(final BlockEntity tileEntity) {
TileIndustrialGrinder tile = (TileIndustrialGrinder) tileEntity;
public boolean onCraft(final BlockEntity be) {
IndustrialGrinderBlockEntity blockEntity = (IndustrialGrinderBlockEntity) be;
final FluidStack recipeFluid = fluidStack;
final FluidStack tankFluid = tile.tank.getFluid();
final FluidStack tankFluid = blockEntity.tank.getFluid();
if (fluidStack == null) {
return true;
}
@ -76,12 +76,12 @@ public class IndustrialGrinderRecipe extends RebornRecipe {
if (tankFluid.isFluidEqual(recipeFluid)) {
if (tankFluid.amount >= recipeFluid.amount) {
if (tankFluid.amount == recipeFluid.amount) {
tile.tank.setFluid(null);
blockEntity.tank.setFluid(null);
}
else {
tankFluid.amount -= recipeFluid.amount;
}
tile.syncWithAll();
blockEntity.syncWithAll();
return true;
}
}

View file

@ -29,7 +29,7 @@ import net.minecraft.util.Identifier;
import reborncore.common.crafting.RebornRecipe;
import reborncore.common.crafting.RebornRecipeType;
import reborncore.fluid.FluidStack;
import techreborn.tiles.machine.multiblock.TileIndustrialSawmill;
import techreborn.blockentity.machine.multiblock.IndustrialSawmillBlockEntity;
public class IndustrialSawmillRecipe extends RebornRecipe {
@ -41,13 +41,13 @@ public class IndustrialSawmillRecipe extends RebornRecipe {
}
@Override
public boolean canCraft(BlockEntity tileEntity) {
TileIndustrialSawmill tile = (TileIndustrialSawmill) tileEntity;
if (!tile.getMutliBlock()) {
public boolean canCraft(BlockEntity be) {
IndustrialSawmillBlockEntity blockEntity = (IndustrialSawmillBlockEntity) be;
if (!blockEntity.getMutliBlock()) {
return false;
}
final FluidStack recipeFluid = fluidStack;
final FluidStack tankFluid = tile.tank.getFluid();
final FluidStack tankFluid = blockEntity.tank.getFluid();
if (fluidStack == null) {
return true;
}
@ -63,10 +63,10 @@ public class IndustrialSawmillRecipe extends RebornRecipe {
}
@Override
public boolean onCraft(BlockEntity tileEntity) {
TileIndustrialSawmill tile = (TileIndustrialSawmill) tileEntity;
public boolean onCraft(BlockEntity be) {
IndustrialSawmillBlockEntity blockEntity = (IndustrialSawmillBlockEntity) be;
final FluidStack recipeFluid = fluidStack;
final FluidStack tankFluid = tile.tank.getFluid();
final FluidStack tankFluid = blockEntity.tank.getFluid();
if (fluidStack == null) {
return true;
}
@ -76,11 +76,11 @@ public class IndustrialSawmillRecipe extends RebornRecipe {
if (tankFluid.isFluidEqual(recipeFluid)) {
if (tankFluid.amount >= recipeFluid.amount) {
if (tankFluid.amount == recipeFluid.amount) {
tile.tank.setFluid(null);
blockEntity.tank.setFluid(null);
} else {
tankFluid.amount -= recipeFluid.amount;
}
tile.syncWithAll();
blockEntity.syncWithAll();
return true;
}
}