Config event update fixed. Milker fluid tank handling issue fixed. Device collision shapes adapted to allow attaching levers.
This commit is contained in:
parent
2e341ef659
commit
b715ea13c1
11 changed files with 82 additions and 61 deletions
|
@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx8G
|
||||||
version_minecraft=1.17.1
|
version_minecraft=1.17.1
|
||||||
version_forge_minecraft=1.17.1-37.0.51
|
version_forge_minecraft=1.17.1-37.0.51
|
||||||
version_jei=1.17.1:8.0.0.15
|
version_jei=1.17.1:8.0.0.15
|
||||||
version_engineersdecor=1.1.17-b3
|
version_engineersdecor=1.1.17-b4
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||||
"1.17.1": {
|
"1.17.1": {
|
||||||
|
"1.1.17-b4": "[F] Config event update fixed.\n[F] Milker fluid tank handling issue fixed.\n[F] Device collision shapes adapted to allow attaching levers.",
|
||||||
"1.1.17-b3": "[F] Fixed Factory Hopper GUI element events.",
|
"1.1.17-b3": "[F] Fixed Factory Hopper GUI element events.",
|
||||||
"1.1.17-b2": "[F] Updated to Forge 1.17.1-37.0.51 to fix `ToolType not found` startup crash.\n[A] JEI plugin enabled.\n[A] Dark Shingle Roof recipe variant added.",
|
"1.1.17-b2": "[F] Updated to Forge 1.17.1-37.0.51 to fix `ToolType not found` startup crash.\n[A] JEI plugin enabled.\n[A] Dark Shingle Roof recipe variant added.",
|
||||||
"1.1.17-b1": "[U] Initial MC 1.17.1 port.\n[M] Clinker Brick textures adapted to contemporary MC textures.\n[D] Gas Concrete dropped (Rebar Concrete suffices for texture variation).\n[D] Treated Wood Side Table dropped.\n[M] Updated zh_cn (PR#183, Lyaiya).",
|
"1.1.17-b1": "[U] Initial MC 1.17.1 port.\n[M] Clinker Brick textures adapted to contemporary MC textures.\n[D] Gas Concrete dropped (Rebar Concrete suffices for texture variation).\n[D] Treated Wood Side Table dropped.\n[M] Updated zh_cn (PR#183, Lyaiya).",
|
||||||
|
@ -43,6 +44,6 @@
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.17.1-recommended": "1.1.14",
|
"1.17.1-recommended": "1.1.14",
|
||||||
"1.17.1-latest": "1.1.17-b3"
|
"1.17.1-latest": "1.1.17-b4"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -11,6 +11,10 @@ Mod sources for Minecraft version 1.16.x.
|
||||||
|
|
||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
|
- v1.1.17-b4 [F] Config event update fixed.
|
||||||
|
[F] Milker fluid tank handling issue fixed.
|
||||||
|
[F] Device collision shapes adapted to allow attaching levers.
|
||||||
|
|
||||||
- v1.1.17-b3 [F] Fixed Factory Hopper GUI element events.
|
- v1.1.17-b3 [F] Fixed Factory Hopper GUI element events.
|
||||||
|
|
||||||
- v1.1.17-b2 [F] Updated to Forge 1.17.1-37.0.51 to fix `ToolType not found` startup crash.
|
- v1.1.17-b2 [F] Updated to Forge 1.17.1-37.0.51 to fix `ToolType not found` startup crash.
|
||||||
|
|
|
@ -17,6 +17,7 @@ import net.minecraftforge.event.entity.living.LivingEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.ModLoadingContext;
|
import net.minecraftforge.fml.ModLoadingContext;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
|
@ -44,8 +45,6 @@ public class ModEngineersDecor
|
||||||
ModLoadingContext.get().registerConfig(net.minecraftforge.fml.config.ModConfig.Type.COMMON, ModConfig.COMMON_CONFIG_SPEC);
|
ModLoadingContext.get().registerConfig(net.minecraftforge.fml.config.ModConfig.Type.COMMON, ModConfig.COMMON_CONFIG_SPEC);
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onSetup);
|
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onSetup);
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onClientSetup);
|
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onClientSetup);
|
||||||
// FMLJavaModLoadingContext.get().getModEventBus().addListener(ForgeEvents::onConfigLoad);
|
|
||||||
// FMLJavaModLoadingContext.get().getModEventBus().addListener(ForgeEvents::onConfigReload);
|
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,20 +92,20 @@ public class ModEngineersDecor
|
||||||
public static void onRegisterContainerTypes(final RegistryEvent.Register<MenuType<?>> event)
|
public static void onRegisterContainerTypes(final RegistryEvent.Register<MenuType<?>> event)
|
||||||
{ ModContent.registerContainers(event); }
|
{ ModContent.registerContainers(event); }
|
||||||
|
|
||||||
/*
|
@SubscribeEvent
|
||||||
public static void onConfigLoad(net.minecraftforge.fml.config.ModConfig.Loading configEvent)
|
public static void onConfigLoad(final ModConfigEvent.Loading event)
|
||||||
{ ModConfig.apply(); }
|
{ ModConfig.apply(); }
|
||||||
|
|
||||||
public static void onConfigReload(net.minecraftforge.fml.config.ModConfig.Reloading configEvent)
|
@SubscribeEvent
|
||||||
|
public static void onConfigReload(final ModConfigEvent.Reloading event)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
ModEngineersDecor.logger().info("Config file changed {}", configEvent.getConfig().getFileName());
|
ModEngineersDecor.logger().info("Config file changed {}", event.getConfig().getFileName());
|
||||||
ModConfig.apply();
|
ModConfig.apply();
|
||||||
} catch(Throwable e) {
|
} catch(Throwable e) {
|
||||||
ModEngineersDecor.logger().error("Failed to load changed config: " + e.getMessage());
|
ModEngineersDecor.logger().error("Failed to load changed config: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -43,6 +43,9 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.common.ForgeHooks;
|
import net.minecraftforge.common.ForgeHooks;
|
||||||
|
@ -93,6 +96,10 @@ public class EdElectricalFurnace
|
||||||
public BlockEntityType<EdElectricalFurnace.ElectricalFurnaceTileEntity> getBlockEntityType()
|
public BlockEntityType<EdElectricalFurnace.ElectricalFurnaceTileEntity> getBlockEntityType()
|
||||||
{ return ModContent.TET_SMALL_ELECTRICAL_FURNACE; }
|
{ return ModContent.TET_SMALL_ELECTRICAL_FURNACE; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
|
{ return Shapes.block(); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
{ super.createBlockStateDefinition(builder); builder.add(LIT); }
|
{ super.createBlockStateDefinition(builder); builder.add(LIT); }
|
||||||
|
|
|
@ -41,6 +41,9 @@ import net.minecraft.world.level.material.Fluid;
|
||||||
import net.minecraft.world.level.material.Fluids;
|
import net.minecraft.world.level.material.Fluids;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||||
|
@ -144,6 +147,10 @@ public class EdFluidBarrel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
|
{ return Shapes.block(); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
{ super.createBlockStateDefinition(builder); builder.add(FILL_LEVEL); }
|
{ super.createBlockStateDefinition(builder); builder.add(FILL_LEVEL); }
|
||||||
|
|
|
@ -21,6 +21,7 @@ import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
@ -36,6 +37,9 @@ import net.minecraft.world.level.material.Fluid;
|
||||||
import net.minecraft.world.level.material.FluidState;
|
import net.minecraft.world.level.material.FluidState;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||||
|
@ -82,6 +86,10 @@ public class EdFluidFunnel
|
||||||
public RenderTypeHint getRenderTypeHint()
|
public RenderTypeHint getRenderTypeHint()
|
||||||
{ return RenderTypeHint.CUTOUT; }
|
{ return RenderTypeHint.CUTOUT; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
|
{ return Shapes.block(); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
{ super.createBlockStateDefinition(builder); builder.add(FILL_LEVEL); }
|
{ super.createBlockStateDefinition(builder); builder.add(FILL_LEVEL); }
|
||||||
|
|
|
@ -22,6 +22,7 @@ import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
@ -34,6 +35,9 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty;
|
||||||
import net.minecraft.world.level.material.Fluids;
|
import net.minecraft.world.level.material.Fluids;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
@ -77,6 +81,10 @@ public class EdFreezer
|
||||||
public BlockEntityType<EdFreezer.FreezerTileEntity> getBlockEntityType()
|
public BlockEntityType<EdFreezer.FreezerTileEntity> getBlockEntityType()
|
||||||
{ return ModContent.TET_FREEZER; }
|
{ return ModContent.TET_FREEZER; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
|
{ return Shapes.block(); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
{ super.createBlockStateDefinition(builder); builder.add(PHASE); }
|
{ super.createBlockStateDefinition(builder); builder.add(PHASE); }
|
||||||
|
|
|
@ -43,8 +43,10 @@ import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
import net.minecraftforge.energy.CapabilityEnergy;
|
||||||
import net.minecraftforge.energy.IEnergyStorage;
|
import net.minecraftforge.energy.IEnergyStorage;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.ItemHandlerHelper;
|
import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
|
@ -76,7 +78,7 @@ public class EdMilker
|
||||||
public static final int MAX_ENERGY_TRANSFER = 512;
|
public static final int MAX_ENERGY_TRANSFER = 512;
|
||||||
public static final int DEFAULT_ENERGY_CONSUMPTION = 0;
|
public static final int DEFAULT_ENERGY_CONSUMPTION = 0;
|
||||||
public static final int DEFAULT_MILKING_DELAY_PER_COW = 4000;
|
public static final int DEFAULT_MILKING_DELAY_PER_COW = 4000;
|
||||||
private static final FluidStack NO_MILK_FLUID = new FluidStack(Fluids.WATER, 0);
|
private static final FluidStack NO_MILK_FLUID = new FluidStack(Fluids.WATER, 1000);
|
||||||
|
|
||||||
private static FluidStack milk_fluid_ = NO_MILK_FLUID;
|
private static FluidStack milk_fluid_ = NO_MILK_FLUID;
|
||||||
private static final HashMap<ItemStack, ItemStack> milk_containers_ = new HashMap<>();
|
private static final HashMap<ItemStack, ItemStack> milk_containers_ = new HashMap<>();
|
||||||
|
@ -113,7 +115,10 @@ public class EdMilker
|
||||||
public static final BooleanProperty ACTIVE = BooleanProperty.create("active");
|
public static final BooleanProperty ACTIVE = BooleanProperty.create("active");
|
||||||
|
|
||||||
public MilkerBlock(long config, BlockBehaviour.Properties builder, final AABB[] unrotatedAABBs)
|
public MilkerBlock(long config, BlockBehaviour.Properties builder, final AABB[] unrotatedAABBs)
|
||||||
{ super(config, builder, unrotatedAABBs); }
|
{
|
||||||
|
super(config, builder, unrotatedAABBs);
|
||||||
|
overrideCollisionShape(Auxiliaries.getPixeledAABB(0,0,0, 16,24,16));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -213,8 +218,8 @@ public class EdMilker
|
||||||
public MilkerTileEntity(BlockPos pos, BlockState state)
|
public MilkerTileEntity(BlockPos pos, BlockState state)
|
||||||
{
|
{
|
||||||
super(ModContent.TET_SMALL_MILKING_MACHINE, pos, state);
|
super(ModContent.TET_SMALL_MILKING_MACHINE, pos, state);
|
||||||
tank_ = new Fluidics.Tank(TANK_CAPACITY, 0, BUCKET_SIZE, (fs)->(has_milk_fluid() && fs.isFluidEqual(milk_fluid_)));
|
tank_ = new Fluidics.Tank(TANK_CAPACITY, 0, BUCKET_SIZE, fs->fs.isFluidEqual(milk_fluid_));
|
||||||
fluid_handler_ = tank_.createFluidHandler();
|
fluid_handler_ = tank_.createOutputFluidHandler();
|
||||||
battery_ = new RfEnergy.Battery(MAX_ENERGY_BUFFER, MAX_ENERGY_TRANSFER, 0);
|
battery_ = new RfEnergy.Battery(MAX_ENERGY_BUFFER, MAX_ENERGY_TRANSFER, 0);
|
||||||
energy_handler_ = battery_.createEnergyHandler();
|
energy_handler_ = battery_.createEnergyHandler();
|
||||||
reset();
|
reset();
|
||||||
|
@ -252,6 +257,9 @@ public class EdMilker
|
||||||
if(!battery_.isEmpty()) battery_.save(nbt);
|
if(!battery_.isEmpty()) battery_.save(nbt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean has_milk_fluid()
|
||||||
|
{ return !(NO_MILK_FLUID.isFluidEqual(milk_fluid_)); }
|
||||||
|
|
||||||
private IFluidHandler fluid_handler()
|
private IFluidHandler fluid_handler()
|
||||||
{ return fluid_handler_.orElse(null); }
|
{ return fluid_handler_.orElse(null); }
|
||||||
|
|
||||||
|
@ -285,54 +293,15 @@ public class EdMilker
|
||||||
fluid_handler_.invalidate();
|
fluid_handler_.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// IFluidTank ------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
private boolean has_milk_fluid()
|
|
||||||
{ return !(NO_MILK_FLUID.isFluidEqual(milk_fluid_)); }
|
|
||||||
|
|
||||||
// @Override
|
|
||||||
// @Nonnull
|
|
||||||
// public FluidStack getFluid()
|
|
||||||
// { return has_milk_fluid() ? (new FluidStack(milk_fluid_, fluid_level())) : (FluidStack.EMPTY); }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public int getFluidAmount()
|
|
||||||
// { return has_milk_fluid() ? fluid_level() : 0; }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public int getCapacity()
|
|
||||||
// { return TANK_CAPACITY; }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public boolean isFluidValid(FluidStack stack)
|
|
||||||
// { return has_milk_fluid() && stack.isFluidEqual(milk_fluid_); }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public int fill(FluidStack resource, IFluidHandler.FluidAction action)
|
|
||||||
// { return 0; }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// @Nonnull
|
|
||||||
// public FluidStack drain(FluidStack resource, IFluidHandler.FluidAction action)
|
|
||||||
// { return (!resource.isFluidEqual(milk_fluid_)) ? (FluidStack.EMPTY) : drain(resource.getAmount(), action); }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// @Nonnull
|
|
||||||
// public FluidStack drain(int maxDrain, IFluidHandler.FluidAction action)
|
|
||||||
// {
|
|
||||||
// if((!has_milk_fluid()) || (fluid_level() <= 0)) return FluidStack.EMPTY;
|
|
||||||
// return tank_.drain(maxDrain, action);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ICapabilityProvider ---------------------------------------------------------------------------
|
// ICapabilityProvider ---------------------------------------------------------------------------
|
||||||
|
|
||||||
// @Override
|
@Override
|
||||||
// public <T> LazyOptional<T> getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @Nullable Direction facing)
|
public <T> LazyOptional<T> getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @Nullable Direction facing)
|
||||||
// {
|
{
|
||||||
// if((capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) && has_milk_fluid()) return fluid_handler_.cast();
|
if((capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) && has_milk_fluid()) return fluid_handler_.cast();
|
||||||
// if((capability == CapabilityEnergy.ENERGY) && (energy_consumption_>0)) return energy_handler_.cast();
|
if((capability == CapabilityEnergy.ENERGY) && (energy_consumption_>0)) return energy_handler_.cast();
|
||||||
// return super.getCapability(capability, facing);
|
return super.getCapability(capability, facing);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// ITickable ------------------------------------------------------------------------------------
|
// ITickable ------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
@ -39,6 +40,9 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty;
|
||||||
import net.minecraft.world.level.material.Fluids;
|
import net.minecraft.world.level.material.Fluids;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
@ -83,6 +87,10 @@ public class EdMineralSmelter
|
||||||
public BlockEntityType<EdMineralSmelter.MineralSmelterTileEntity> getBlockEntityType()
|
public BlockEntityType<EdMineralSmelter.MineralSmelterTileEntity> getBlockEntityType()
|
||||||
{ return ModContent.TET_MINERAL_SMELTER; }
|
{ return ModContent.TET_MINERAL_SMELTER; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
|
{ return Shapes.block(); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
{ super.createBlockStateDefinition(builder); builder.add(PHASE); }
|
{ super.createBlockStateDefinition(builder); builder.add(PHASE); }
|
||||||
|
|
|
@ -273,12 +273,14 @@ public class StandardBlocks
|
||||||
{
|
{
|
||||||
public static final DirectionProperty FACING = DirectionalBlock.FACING;
|
public static final DirectionProperty FACING = DirectionalBlock.FACING;
|
||||||
protected final ArrayList<VoxelShape> vshapes;
|
protected final ArrayList<VoxelShape> vshapes;
|
||||||
|
protected final ArrayList<VoxelShape> cshapes;
|
||||||
|
|
||||||
public Directed(long config, BlockBehaviour.Properties properties, final Supplier<ArrayList<VoxelShape>> shape_supplier)
|
public Directed(long config, BlockBehaviour.Properties properties, final Supplier<ArrayList<VoxelShape>> shape_supplier)
|
||||||
{
|
{
|
||||||
super(config, properties);
|
super(config, properties);
|
||||||
registerDefaultState(super.defaultBlockState().setValue(FACING, Direction.UP));
|
registerDefaultState(super.defaultBlockState().setValue(FACING, Direction.UP));
|
||||||
vshapes = shape_supplier.get();
|
vshapes = shape_supplier.get();
|
||||||
|
cshapes = new ArrayList<>(vshapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Directed(long config, BlockBehaviour.Properties properties, final AABB[] unrotatedAABBs)
|
public Directed(long config, BlockBehaviour.Properties properties, final AABB[] unrotatedAABBs)
|
||||||
|
@ -301,6 +303,9 @@ public class StandardBlocks
|
||||||
public Directed(long config, BlockBehaviour.Properties properties, final AABB unrotatedAABB)
|
public Directed(long config, BlockBehaviour.Properties properties, final AABB unrotatedAABB)
|
||||||
{ this(config, properties, new AABB[]{unrotatedAABB}); }
|
{ this(config, properties, new AABB[]{unrotatedAABB}); }
|
||||||
|
|
||||||
|
protected void overrideCollisionShape(final AABB unrotatedAABB)
|
||||||
|
{ for(int i=0; i<cshapes.size(); ++i) cshapes.set(i, Shapes.create(unrotatedAABB)); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isPossibleToRespawnInThis()
|
public boolean isPossibleToRespawnInThis()
|
||||||
{ return false; }
|
{ return false; }
|
||||||
|
@ -315,7 +320,7 @@ public class StandardBlocks
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
{ return getShape(state, world, pos, selectionContext); }
|
{ return cshapes.get((state.getValue(FACING)).get3DDataValue() & 0x7); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
|
@ -346,12 +351,14 @@ public class StandardBlocks
|
||||||
{
|
{
|
||||||
public static final DirectionProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING;
|
public static final DirectionProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING;
|
||||||
protected final ArrayList<VoxelShape> vshapes;
|
protected final ArrayList<VoxelShape> vshapes;
|
||||||
|
protected final ArrayList<VoxelShape> cshapes;
|
||||||
|
|
||||||
public Horizontal(long config, BlockBehaviour.Properties properties, final Supplier<ArrayList<VoxelShape>> shape_supplier)
|
public Horizontal(long config, BlockBehaviour.Properties properties, final Supplier<ArrayList<VoxelShape>> shape_supplier)
|
||||||
{
|
{
|
||||||
super(config|CFG_HORIZIONTAL, properties);
|
super(config|CFG_HORIZIONTAL, properties);
|
||||||
registerDefaultState(super.defaultBlockState().setValue(HORIZONTAL_FACING, Direction.NORTH));
|
registerDefaultState(super.defaultBlockState().setValue(HORIZONTAL_FACING, Direction.NORTH));
|
||||||
vshapes = shape_supplier.get();
|
vshapes = shape_supplier.get();
|
||||||
|
cshapes = new ArrayList<>(vshapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Horizontal(long config, BlockBehaviour.Properties properties, final AABB[] unrotatedAABBs)
|
public Horizontal(long config, BlockBehaviour.Properties properties, final AABB[] unrotatedAABBs)
|
||||||
|
@ -374,13 +381,16 @@ public class StandardBlocks
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void overrideCollisionShape(final AABB unrotatedAABB)
|
||||||
|
{ for(int i=0; i<cshapes.size(); ++i) cshapes.set(i, Shapes.create(unrotatedAABB)); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getShape(BlockState state, BlockGetter source, BlockPos pos, CollisionContext selectionContext)
|
public VoxelShape getShape(BlockState state, BlockGetter source, BlockPos pos, CollisionContext selectionContext)
|
||||||
{ return vshapes.get((state.getValue(HORIZONTAL_FACING)).get3DDataValue() & 0x7); }
|
{ return vshapes.get((state.getValue(HORIZONTAL_FACING)).get3DDataValue() & 0x7); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
public VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext selectionContext)
|
||||||
{ return getShape(state, world, pos, selectionContext); }
|
{ return cshapes.get((state.getValue(HORIZONTAL_FACING)).get3DDataValue() & 0x7); }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue