Port to 1.18 (now compiles)

TODO: the new EntityBlock ticking logic
This commit is contained in:
yuesha-yc 2022-02-22 00:49:20 -08:00
parent 997f03f0e8
commit ee7d441669
No known key found for this signature in database
GPG key ID: 009D79A802D4ED01
30 changed files with 225 additions and 178 deletions

View file

@ -18,11 +18,7 @@
package com.teammoeg.steampowered.content.alternator;
import java.util.List;
import java.util.Random;
import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock;
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
import com.simibubi.create.content.contraptions.base.IRotate;
import com.simibubi.create.foundation.block.ITE;
import com.simibubi.create.foundation.item.ItemDescription.Palette;
@ -31,32 +27,30 @@ import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.VoxelShaper;
import com.teammoeg.steampowered.block.SPShapes;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.ChatFormatting;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.state.Property;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraft.network.chat.Component;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.Level;
import net.minecraft.server.level.ServerLevel;
import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
import java.util.List;
import java.util.Random;
/**
* Adapted from: Create: Crafts & Additions
@ -112,8 +106,8 @@ public class DynamoBlock extends DirectionalKineticBlock implements ITE<DynamoTi
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.DYNAMO.create();
public BlockEntityType<? extends DynamoTileEntity> getTileEntityType() {
return SPTiles.DYNAMO.get();
}
@Override
@ -159,7 +153,7 @@ public class DynamoBlock extends DirectionalKineticBlock implements ITE<DynamoTi
boolean isLocked = state.getValue(REDSTONE_LOCKED);
if (isLocked != world.hasNeighborSignal(pos)) {
if (isLocked) {
world.getBlockTicks().scheduleTick(pos, this, 4);
world.scheduleTick(pos, this, 4);
} else {
world.setBlock(pos, state.cycle(REDSTONE_LOCKED), 2);
}

View file

@ -24,6 +24,7 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.foundation.utility.Lang;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntity;
@ -55,8 +56,8 @@ public class DynamoTileEntity extends KineticTileEntity {
public static final int IMPACT = SPConfig.COMMON.dynamoImpact.get(); // Impact on network
public static final double EFFICIENCY = SPConfig.COMMON.dynamoEfficiency.get(); // Efficiency
public DynamoTileEntity(BlockEntityType<?> typeIn) {
super(typeIn);
public DynamoTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
energy = new InternalEnergyStorage(FE_CAPACITY, 0, MAX_FE_OUT);
lazyEnergy = LazyOptional.of(() -> energy);
}
@ -98,8 +99,8 @@ public class DynamoTileEntity extends KineticTileEntity {
return super.getCapability(cap, side);
}
public void fromTag(BlockState state, CompoundTag compound, boolean clientPacket) {
super.fromTag(state, compound, clientPacket);
public void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
energy.read(compound);
redstoneLocked = compound.getBoolean("redstonelocked");
}

View file

@ -18,23 +18,20 @@
package com.teammoeg.steampowered.content.boiler;
import java.util.List;
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
import com.teammoeg.steampowered.FluidRegistry;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.content.burner.IHeatReceiver;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.Connection;
import net.minecraft.network.chat.Component;
import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
import net.minecraft.world.level.block.entity.TickableBlockEntity;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluids;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
@ -43,7 +40,9 @@ import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction;
import net.minecraftforge.fluids.capability.templates.FluidTank;
public abstract class BoilerTileEntity extends BlockEntity implements IHeatReceiver, TickableBlockEntity, IHaveGoggleInformation {
import java.util.List;
public abstract class BoilerTileEntity extends BlockEntity implements IHeatReceiver, IHaveGoggleInformation {
FluidTank input = new FluidTank(10000,s->s.getFluid() == Fluids.WATER);
FluidTank output = new FluidTank(10000);
private IFluidHandler ft = new IFluidHandler() {
@ -95,8 +94,8 @@ public abstract class BoilerTileEntity extends BlockEntity implements IHeatRecei
int lastheat;
private LazyOptional<IFluidHandler> holder = LazyOptional.of(() -> ft);
public BoilerTileEntity(BlockEntityType<?> p_i48289_1_) {
super(p_i48289_1_);
public BoilerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
// Easy, easy
@ -116,23 +115,22 @@ public abstract class BoilerTileEntity extends BlockEntity implements IHeatRecei
}
@Override
public void load(BlockState state, CompoundTag nbt) {
super.load(state, nbt);
public void load(CompoundTag nbt) {
super.load(nbt);
readCustomNBT(nbt);
}
@Override
public CompoundTag save(CompoundTag nbt) {
super.save(nbt);
public void saveAdditional(CompoundTag nbt) {
super.saveAdditional(nbt);
writeCustomNBT(nbt);
return nbt;
}
@Override
public ClientboundBlockEntityDataPacket getUpdatePacket() {
CompoundTag nbt = new CompoundTag();
this.writeCustomNBT(nbt);
return new ClientboundBlockEntityDataPacket(this.getBlockPos(), 3, nbt);
return ClientboundBlockEntityDataPacket.create(this);
}
@Override
@ -147,7 +145,7 @@ public abstract class BoilerTileEntity extends BlockEntity implements IHeatRecei
return nbt;
}
@Override
//TODO: implement tick logic
public void tick() {
@ -162,7 +160,7 @@ public abstract class BoilerTileEntity extends BlockEntity implements IHeatRecei
heatreceived = 0;
double waterconsume=(SPConfig.COMMON.steamPerWater.get()*10);
consume = Math.min((int)(this.input.drain((int) Math.ceil(consume / waterconsume), FluidAction.EXECUTE).getAmount() * waterconsume), consume);
this.output.fill(new FluidStack(FluidRegistry.steam.get().getFluid(), consume / 10), FluidAction.EXECUTE);
this.output.fill(new FluidStack(FluidRegistry.steam.get(), consume / 10), FluidAction.EXECUTE);
flag=true;
}
this.setChanged();

View file

@ -18,27 +18,34 @@
package com.teammoeg.steampowered.content.boiler;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
public class BronzeBoilerBlock extends BoilerBlock {
public class BronzeBoilerBlock extends BoilerBlock implements ITE<BronzeBoilerTileEntity> {
public BronzeBoilerBlock(Properties properties) {
super(properties);
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.BRONZE_BOILER.create();
}
@Override
public int getHuConsume() {
return SPConfig.COMMON.bronzeBoilerHU.get();
}
@Override
public Class<BronzeBoilerTileEntity> getTileEntityClass() {
return BronzeBoilerTileEntity.class;
}
@Override
public BlockEntityType<? extends BronzeBoilerTileEntity> getTileEntityType() {
return SPTiles.BRONZE_BOILER.get();
}
}

View file

@ -20,12 +20,14 @@ package com.teammoeg.steampowered.content.boiler;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class BronzeBoilerTileEntity extends BoilerTileEntity {
public BronzeBoilerTileEntity(BlockEntityType<?> type) {
super(type);
public BronzeBoilerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
protected int getHUPerTick() {

View file

@ -18,27 +18,34 @@
package com.teammoeg.steampowered.content.boiler;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
public class CastIronBoilerBlock extends BoilerBlock {
public class CastIronBoilerBlock extends BoilerBlock implements ITE<CastIronBoilerTileEntity> {
public CastIronBoilerBlock(Properties properties) {
super(properties);
}
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.CAST_IRON_BOILER.create();
}
@Override
public int getHuConsume() {
return SPConfig.COMMON.castIronBoilerHU.get();
}
@Override
public Class<CastIronBoilerTileEntity> getTileEntityClass() {
return CastIronBoilerTileEntity.class;
}
@Override
public BlockEntityType<? extends CastIronBoilerTileEntity> getTileEntityType() {
return SPTiles.CAST_IRON_BOILER.get();
}
}

View file

@ -20,12 +20,14 @@ package com.teammoeg.steampowered.content.boiler;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class CastIronBoilerTileEntity extends BoilerTileEntity {
public CastIronBoilerTileEntity(BlockEntityType<?> type) {
super(type);
public CastIronBoilerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
protected int getHUPerTick() {

View file

@ -18,27 +18,34 @@
package com.teammoeg.steampowered.content.boiler;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
public class SteelBoilerBlock extends BoilerBlock {
public class SteelBoilerBlock extends BoilerBlock implements ITE<SteelBoilerTileEntity> {
public SteelBoilerBlock(Properties properties) {
super(properties);
}
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.STEEL_BOILER.create();
}
@Override
public int getHuConsume() {
return SPConfig.COMMON.steelBoilerHU.get();
}
@Override
public Class<SteelBoilerTileEntity> getTileEntityClass() {
return SteelBoilerTileEntity.class;
}
@Override
public BlockEntityType<? extends SteelBoilerTileEntity> getTileEntityType() {
return SPTiles.STEEL_BOILER.get();
}
}

View file

@ -20,12 +20,14 @@ package com.teammoeg.steampowered.content.boiler;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class SteelBoilerTileEntity extends BoilerTileEntity {
public SteelBoilerTileEntity(BlockEntityType<?> type) {
super(type);
public SteelBoilerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
protected int getHUPerTick() {

View file

@ -18,24 +18,21 @@
package com.teammoeg.steampowered.content.burner;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
public class BronzeBurnerBlock extends BurnerBlock {
public class BronzeBurnerBlock extends BurnerBlock implements ITE<BronzeBurnerTileEntity> {
public BronzeBurnerBlock(Properties properties) {
super(properties);
}
public BlockEntity createBlockEntity(BlockState state, BlockGetter world) {
return SPTiles.BRONZE_BURNER.create();
}
@Override
public int getHuProduce() {
return SPConfig.COMMON.bronzeBurnerHU.get();
@ -45,4 +42,14 @@ public class BronzeBurnerBlock extends BurnerBlock {
public double getEfficiency() {
return SPConfig.COMMON.bronzeBurnerEfficiency.get();
}
@Override
public Class<BronzeBurnerTileEntity> getTileEntityClass() {
return BronzeBurnerTileEntity.class;
}
@Override
public BlockEntityType<? extends BronzeBurnerTileEntity> getTileEntityType() {
return SPTiles.BRONZE_BURNER.get();
}
}

View file

@ -20,12 +20,14 @@ package com.teammoeg.steampowered.content.burner;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class BronzeBurnerTileEntity extends BurnerTileEntity {
public BronzeBurnerTileEntity(BlockEntityType<?> type) {
super(type);
public BronzeBurnerTileEntity(BlockEntityType<? extends BurnerTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override

View file

@ -25,6 +25,7 @@ import com.simibubi.create.foundation.item.ItemDescription.Palette;
import com.simibubi.create.foundation.item.TooltipHelper;
import com.simibubi.create.foundation.utility.Lang;
import com.teammoeg.steampowered.client.ClientUtils;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.client.gui.screens.Screen;
@ -97,16 +98,12 @@ public abstract class BurnerBlock extends Block {
}
@Override
public boolean hasTileEntity(BlockState state) {
return true;
public void stepOn(Level pLevel, BlockPos pPos, BlockState pState, Entity pEntity) {
if (pState.getValue(LIT))
if (pEntity instanceof LivingEntity)
pEntity.hurt(DamageSource.HOT_FLOOR, 2);
}
@Override
public void stepOn(Level w, BlockPos p, Entity e) {
if (w.getBlockState(p).getValue(LIT) == true)
if (e instanceof LivingEntity)
e.hurt(DamageSource.HOT_FLOOR, 2);
}
public abstract int getHuProduce() ;
public abstract double getEfficiency();
public String getEfficiencyString() {
@ -149,7 +146,7 @@ public abstract class BurnerBlock extends Block {
pe.setItemInHand(h, cap.extractItem(0, is.getCount(), false));
return InteractionResult.SUCCESS;
}
} else if (ForgeHooks.getBurnTime(pe.getItemInHand(h)) != 0 && pe.getItemInHand(h).getContainerItem().isEmpty()) {
} else if (ForgeHooks.getBurnTime(pe.getItemInHand(h), RecipeType.BLASTING) != 0 && pe.getItemInHand(h).getContainerItem().isEmpty()) {
IItemHandler cap = w.getBlockEntity(bp).getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY).resolve().get();
pe.setItemInHand(h, cap.insertItem(0, pe.getItemInHand(h), false));
return InteractionResult.SUCCESS;
@ -162,7 +159,7 @@ public abstract class BurnerBlock extends Block {
boolean isLocked = state.getValue(REDSTONE_LOCKED);
if (isLocked != world.hasNeighborSignal(pos)) {
if (isLocked) {
world.getBlockTicks().scheduleTick(pos, this, 4);
world.scheduleTick(pos, this, 4);
} else {
world.setBlock(pos, state.cycle(REDSTONE_LOCKED), 2);
}

View file

@ -23,13 +23,13 @@ import java.util.List;
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.Connection;
import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
import net.minecraft.world.level.block.entity.TickableBlockEntity;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.core.Direction;
@ -43,12 +43,12 @@ import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemStackHandler;
public abstract class BurnerTileEntity extends BlockEntity implements TickableBlockEntity, IHaveGoggleInformation {
public abstract class BurnerTileEntity extends BlockEntity implements IHaveGoggleInformation {
private ItemStackHandler inv = new ItemStackHandler() {
@Override
public boolean isItemValid(int slot, ItemStack stack) {
if (ForgeHooks.getBurnTime(stack) != 0) return true;
if (ForgeHooks.getBurnTime(stack, RecipeType.SMELTING) != 0) return true;
return false;
}
@ -56,8 +56,8 @@ public abstract class BurnerTileEntity extends BlockEntity implements TickableBl
int HURemain;
private LazyOptional<IItemHandler> holder = LazyOptional.of(() -> inv);
public BurnerTileEntity(BlockEntityType<?> p_i48289_1_) {
super(p_i48289_1_);
public BurnerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
// Easy, easy
@ -73,23 +73,22 @@ public abstract class BurnerTileEntity extends BlockEntity implements TickableBl
}
@Override
public void load(BlockState state, CompoundTag nbt) {
super.load(state, nbt);
public void load(CompoundTag nbt) {
super.load(nbt);
readCustomNBT(nbt);
}
@Override
public CompoundTag save(CompoundTag nbt) {
super.save(nbt);
public void saveAdditional(CompoundTag nbt) {
super.saveAdditional(nbt);
writeCustomNBT(nbt);
return nbt;
}
@Override
public ClientboundBlockEntityDataPacket getUpdatePacket() {
CompoundTag nbt = new CompoundTag();
this.writeCustomNBT(nbt);
return new ClientboundBlockEntityDataPacket(this.getBlockPos(), 3, nbt);
return ClientboundBlockEntityDataPacket.create(this);
}
@Override
@ -120,7 +119,7 @@ public abstract class BurnerTileEntity extends BlockEntity implements TickableBl
oldCap.invalidate();
}
@Override
//TODO: implement tick logic
public void tick() {
if (level != null && !level.isClientSide) {
BlockState state = this.level.getBlockState(this.worldPosition);

View file

@ -18,25 +18,16 @@
package com.teammoeg.steampowered.content.burner;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
public class CastIronBurnerBlock extends BurnerBlock {
public class CastIronBurnerBlock extends BurnerBlock implements ITE<CastIronBurnerTileEntity> {
public CastIronBurnerBlock(Properties properties) {
super(properties);
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.CAST_IRON_BURNER.create();
}
@Override
public int getHuProduce() {
return SPConfig.COMMON.castIronBurnerHU.get();
@ -46,4 +37,14 @@ public class CastIronBurnerBlock extends BurnerBlock {
public double getEfficiency() {
return SPConfig.COMMON.castIronBurnerEfficiency.get();
}
@Override
public Class<CastIronBurnerTileEntity> getTileEntityClass() {
return CastIronBurnerTileEntity.class;
}
@Override
public BlockEntityType<? extends CastIronBurnerTileEntity> getTileEntityType() {
return SPTiles.CAST_IRON_BURNER.get();
}
}

View file

@ -20,12 +20,15 @@ package com.teammoeg.steampowered.content.burner;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.content.engine.SteamEngineTileEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class CastIronBurnerTileEntity extends BurnerTileEntity {
public CastIronBurnerTileEntity(BlockEntityType<?> type) {
super(type);
public CastIronBurnerTileEntity(BlockEntityType<? extends BurnerTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override

View file

@ -18,25 +18,22 @@
package com.teammoeg.steampowered.content.burner;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
public class SteelBurnerBlock extends BurnerBlock {
public class SteelBurnerBlock extends BurnerBlock implements ITE<SteelBurnerTileEntity> {
public SteelBurnerBlock(Properties properties) {
super(properties);
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.STEEL_BURNER.create();
}
@Override
public int getHuProduce() {
return SPConfig.COMMON.steelBurnerHU.get();
@ -46,4 +43,14 @@ public class SteelBurnerBlock extends BurnerBlock {
public double getEfficiency() {
return SPConfig.COMMON.steelBurnerEfficiency.get();
}
@Override
public Class<SteelBurnerTileEntity> getTileEntityClass() {
return SteelBurnerTileEntity.class;
}
@Override
public BlockEntityType<? extends SteelBurnerTileEntity> getTileEntityType() {
return SPTiles.STEEL_BURNER.get();
}
}

View file

@ -20,12 +20,14 @@ package com.teammoeg.steampowered.content.burner;
import com.teammoeg.steampowered.SPConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class SteelBurnerTileEntity extends BurnerTileEntity {
public SteelBurnerTileEntity(BlockEntityType<?> type) {
super(type);
public SteelBurnerTileEntity(BlockEntityType<? extends BurnerTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override

View file

@ -18,9 +18,12 @@
package com.teammoeg.steampowered.content.cogwheel;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;
import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.BlockGetter;
@ -31,8 +34,8 @@ public class MetalCogwheelBlock extends CogWheelBlock {
super(large, properties);
}
public MetalCogwheelTileEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.METAL_COGWHEEL.create();
public BlockEntityType<? extends SimpleKineticTileEntity> getTileEntityType() {
return SPTiles.METAL_COGWHEEL.get();
}
public static MetalCogwheelBlock small(Properties properties) {

View file

@ -20,10 +20,12 @@ package com.teammoeg.steampowered.content.cogwheel;
import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class MetalCogwheelTileEntity extends SimpleKineticTileEntity {
public MetalCogwheelTileEntity(BlockEntityType<? extends MetalCogwheelTileEntity> type) {
super(type);
public MetalCogwheelTileEntity(BlockEntityType<? extends MetalCogwheelTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
}

View file

@ -27,32 +27,30 @@ import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.client.ClientUtils;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.network.chat.Component;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
public class BronzeSteamEngineBlock extends SteamEngineBlock implements ITE<BronzeSteamEngineTileEntity> {
public BronzeSteamEngineBlock(Properties builder) {
super(builder);
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.BRONZE_STEAM_ENGINE.create();
public BlockEntityType<? extends BronzeSteamEngineTileEntity> getTileEntityType() {
return SPTiles.BRONZE_STEAM_ENGINE.get();
}
@Override
public Class<BronzeSteamEngineTileEntity> getTileEntityClass() {
return BronzeSteamEngineTileEntity.class;
}
@Override
public void appendHoverText(ItemStack i, BlockGetter w, List<Component> t,
TooltipFlag f) {

View file

@ -21,12 +21,14 @@ package com.teammoeg.steampowered.content.engine;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPBlocks;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class BronzeSteamEngineTileEntity extends SteamEngineTileEntity {
public BronzeSteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type) {
super(type);
public BronzeSteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override

View file

@ -27,6 +27,7 @@ import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.client.ClientUtils;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.item.TooltipFlag;
@ -45,8 +46,8 @@ public class CastIronSteamEngineBlock extends SteamEngineBlock implements ITE<Ca
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.CAST_IRON_STEAM_ENGINE.create();
public BlockEntityType<? extends CastIronSteamEngineTileEntity> getTileEntityType() {
return SPTiles.CAST_IRON_STEAM_ENGINE.get();
}
@Override
public void appendHoverText(ItemStack i, BlockGetter w, List<Component> t,

View file

@ -21,12 +21,14 @@ package com.teammoeg.steampowered.content.engine;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPBlocks;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class CastIronSteamEngineTileEntity extends SteamEngineTileEntity {
public CastIronSteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type) {
super(type);
public CastIronSteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override

View file

@ -26,12 +26,15 @@ import com.jozufozu.flywheel.core.PartialModel;
import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllShapes;
import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineBlock;
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineTileEntity;
import com.simibubi.create.foundation.block.ITE;
import com.teammoeg.steampowered.FluidRegistry;
import com.teammoeg.steampowered.ItemRegistry;
import com.teammoeg.steampowered.client.Particles;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.entity.player.Player;
@ -77,10 +80,15 @@ public class SteamEngineBlock extends EngineBlock {
super.createBlockStateDefinition(builder.add(LIT));
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.BRONZE_STEAM_ENGINE.create();
}
// @Override
// public Class<SteamEngineTileEntity> getTileEntityClass() {
// return SteamEngineTileEntity.class;
// }
//
// @Override
// public BlockEntityType<? extends SteamEngineTileEntity> getTileEntityType() {
// return SPTiles.BRONZE_STEAM_ENGINE.get();
// }
@Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {

View file

@ -57,8 +57,8 @@ public abstract class SteamEngineTileEntity extends EngineTileEntity implements
private LazyOptional<IFluidHandler> holder = LazyOptional.of(() -> tank);
private int heatup = 0;
public SteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type) {
super(type);
public SteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
this.refreshCapability();
this.tank = new FluidTank(this.getSteamStorage(), fluidStack -> {
Tag<Fluid> steamTag = FluidTags.getAllTags().getTag(new ResourceLocation("forge", "steam"));
@ -121,12 +121,14 @@ public abstract class SteamEngineTileEntity extends EngineTileEntity implements
getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY));
}
protected void fromTag(BlockState state, CompoundTag compound, boolean clientPacket) {
super.fromTag(state, compound, clientPacket);
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
tank.readFromNBT(compound.getCompound("TankContent"));
heatup = compound.getInt("heatup");
}
@Override
public void write(CompoundTag compound, boolean clientPacket) {
super.write(compound, clientPacket);
compound.put("TankContent", tank.writeToNBT(new CompoundTag()));

View file

@ -27,6 +27,7 @@ import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.client.ClientUtils;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.world.item.TooltipFlag;
@ -45,8 +46,8 @@ public class SteelSteamEngineBlock extends SteamEngineBlock implements ITE<Steel
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.STEEL_STEAM_ENGINE.create();
public BlockEntityType<? extends SteelSteamEngineTileEntity> getTileEntityType() {
return SPTiles.STEEL_STEAM_ENGINE.get();
}
@Override
public void appendHoverText(ItemStack i, BlockGetter w, List<Component> t,

View file

@ -21,12 +21,14 @@ package com.teammoeg.steampowered.content.engine;
import com.teammoeg.steampowered.SPConfig;
import com.teammoeg.steampowered.registrate.SPBlocks;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class SteelSteamEngineTileEntity extends SteamEngineTileEntity {
public SteelSteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type) {
super(type);
public SteelSteamEngineTileEntity(BlockEntityType<? extends SteamEngineTileEntity> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override

View file

@ -19,13 +19,9 @@
package com.teammoeg.steampowered.content.flywheel;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
import net.minecraft.world.level.block.entity.BlockEntityType;
public class BronzeSteamFlywheelBlock extends FlywheelBlock {
public BronzeSteamFlywheelBlock(Properties properties) {
@ -33,7 +29,7 @@ public class BronzeSteamFlywheelBlock extends FlywheelBlock {
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.BRONZE_STEAM_FLYWHEEL.create();
public BlockEntityType<? extends FlywheelTileEntity> getTileEntityType() {
return SPTiles.BRONZE_STEAM_FLYWHEEL.get();
}
}

View file

@ -19,13 +19,9 @@
package com.teammoeg.steampowered.content.flywheel;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
import net.minecraft.world.level.block.entity.BlockEntityType;
public class CastIronSteamFlywheelBlock extends FlywheelBlock {
public CastIronSteamFlywheelBlock(Properties properties) {
@ -33,7 +29,7 @@ public class CastIronSteamFlywheelBlock extends FlywheelBlock {
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.CAST_IRON_STEAM_FLYWHEEL.create();
public BlockEntityType<? extends FlywheelTileEntity> getTileEntityType() {
return SPTiles.CAST_IRON_STEAM_FLYWHEEL.get();
}
}

View file

@ -19,13 +19,9 @@
package com.teammoeg.steampowered.content.flywheel;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock;
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
import com.teammoeg.steampowered.registrate.SPTiles;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
import net.minecraft.world.level.block.entity.BlockEntityType;
public class SteelSteamFlywheelBlock extends FlywheelBlock {
public SteelSteamFlywheelBlock(Properties properties) {
@ -33,7 +29,7 @@ public class SteelSteamFlywheelBlock extends FlywheelBlock {
}
@Override
public BlockEntity createTileEntity(BlockState state, BlockGetter world) {
return SPTiles.STEEL_STEAM_FLYWHEEL.create();
public BlockEntityType<? extends FlywheelTileEntity> getTileEntityType() {
return SPTiles.STEEL_STEAM_FLYWHEEL.get();
}
}