mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-28 16:06:48 +01:00
Bugs and things
- Recipes for the diving gear - Idle Windmill Bearings now attach their structure when moved as part of another contraption - Fixed pumps not updating transfer speed when directly between containers - Fixed Multiblock Fluid tanks showing inconsistent information on their goggle overlay - Creative Fluid tanks no longer show a goggle overlay - Fixed Funnels and other interfaces not updating properly when affected chunks are unloaded and reloaded - Fixed tooltips rendering behind item icon in the filter screens
This commit is contained in:
parent
39fb642fd9
commit
ca5b9b4fb9
14 changed files with 231 additions and 21 deletions
|
@ -1773,6 +1773,9 @@ c33e122c534a7a134f69faa36446ce7564d8a705 data/create/advancements/recipes/buildi
|
||||||
c368cadffa9177fefb9e92ff4453b40bc8dd670d data/create/advancements/recipes/create.base/blasting/copper_ingot_from_ore.json
|
c368cadffa9177fefb9e92ff4453b40bc8dd670d data/create/advancements/recipes/create.base/blasting/copper_ingot_from_ore.json
|
||||||
8fffce2a5c5dd88d52e3b006fa92fb18cf2f1571 data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_crushed.json
|
8fffce2a5c5dd88d52e3b006fa92fb18cf2f1571 data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_crushed.json
|
||||||
4bb60ef5e186f12a9d52e61319db8c78300c64ab data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_ore.json
|
4bb60ef5e186f12a9d52e61319db8c78300c64ab data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_ore.json
|
||||||
|
d1d8cf6e1c95b7d99bf873fa6fee033103f995fd data/create/advancements/recipes/create.base/crafting/appliances/copper_backtank.json
|
||||||
|
46c04e685ab345a80598176f7ac68a044a76cd76 data/create/advancements/recipes/create.base/crafting/appliances/diving_boots.json
|
||||||
|
5f06b7dcf2af11f30c2e10ade4ac3fd172bc04df data/create/advancements/recipes/create.base/crafting/appliances/diving_helmet.json
|
||||||
dd487f98c411f1ff22cb7fc208b8cc24b27deb2f data/create/advancements/recipes/create.base/crafting/appliances/dough.json
|
dd487f98c411f1ff22cb7fc208b8cc24b27deb2f data/create/advancements/recipes/create.base/crafting/appliances/dough.json
|
||||||
51cdcf168087f47e4458eed7543d227da1ee5ca0 data/create/advancements/recipes/create.base/crafting/appliances/tree_fertilizer.json
|
51cdcf168087f47e4458eed7543d227da1ee5ca0 data/create/advancements/recipes/create.base/crafting/appliances/tree_fertilizer.json
|
||||||
d531f87f425d199aee4777a588c1cd6cab6f5173 data/create/advancements/recipes/create.base/crafting/curiosities/minecart_coupling.json
|
d531f87f425d199aee4777a588c1cd6cab6f5173 data/create/advancements/recipes/create.base/crafting/curiosities/minecart_coupling.json
|
||||||
|
@ -2842,6 +2845,9 @@ f7879d404d7a848d818278b4e788f285a9087e63 data/create/recipes/compacting/blaze_ca
|
||||||
27c23592d8fec03072a04544d3598ca9b1c798ff data/create/recipes/compacting/chocolate.json
|
27c23592d8fec03072a04544d3598ca9b1c798ff data/create/recipes/compacting/chocolate.json
|
||||||
7b2ef15dd28d1d8a450ea49a82dfb361d1adde4c data/create/recipes/compacting/diorite_from_flint.json
|
7b2ef15dd28d1d8a450ea49a82dfb361d1adde4c data/create/recipes/compacting/diorite_from_flint.json
|
||||||
7657603e95ccf83dd0d4b104635db66e531d092a data/create/recipes/compacting/granite_from_flint.json
|
7657603e95ccf83dd0d4b104635db66e531d092a data/create/recipes/compacting/granite_from_flint.json
|
||||||
|
30030b15caa11b3a7c0104adb62fe74e8c7c0df1 data/create/recipes/crafting/appliances/copper_backtank.json
|
||||||
|
9ad82ac5ce02654b7af7f1a570a6b2c01e140da3 data/create/recipes/crafting/appliances/diving_boots.json
|
||||||
|
813081c6421b34e161ec44e8e470994c282f76be data/create/recipes/crafting/appliances/diving_helmet.json
|
||||||
19526da3a59fc136654ff1bc93c0251581f397a9 data/create/recipes/crafting/appliances/dough.json
|
19526da3a59fc136654ff1bc93c0251581f397a9 data/create/recipes/crafting/appliances/dough.json
|
||||||
7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json
|
7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json
|
||||||
b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json
|
b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"create:crafting/appliances/copper_backtank"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"trigger": "minecraft:inventory_changed",
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"tag": "forge:ingots/copper"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"trigger": "minecraft:recipe_unlocked",
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "create:crafting/appliances/copper_backtank"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_item",
|
||||||
|
"has_the_recipe"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"create:crafting/appliances/diving_boots"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"trigger": "minecraft:inventory_changed",
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"tag": "forge:ingots/copper"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"trigger": "minecraft:recipe_unlocked",
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "create:crafting/appliances/diving_boots"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_item",
|
||||||
|
"has_the_recipe"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"create:crafting/appliances/diving_helmet"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"trigger": "minecraft:inventory_changed",
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"tag": "forge:ingots/copper"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"trigger": "minecraft:recipe_unlocked",
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "create:crafting/appliances/diving_helmet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_item",
|
||||||
|
"has_the_recipe"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"AGA",
|
||||||
|
"PPP",
|
||||||
|
" P "
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"G": {
|
||||||
|
"item": "create:shaft"
|
||||||
|
},
|
||||||
|
"A": {
|
||||||
|
"item": "create:andesite_alloy"
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"tag": "forge:ingots/copper"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "create:copper_backtank"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"P P",
|
||||||
|
"P P",
|
||||||
|
"G G"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"G": {
|
||||||
|
"item": "create:andesite_alloy"
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"tag": "forge:ingots/copper"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "create:diving_boots"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"PPP",
|
||||||
|
"PGP"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"G": {
|
||||||
|
"tag": "forge:glass"
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"tag": "forge:ingots/copper"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "create:diving_helmet"
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,6 +33,7 @@ import com.simibubi.create.content.contraptions.components.actors.SeatBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.actors.SeatEntity;
|
import com.simibubi.create.content.contraptions.components.actors.SeatEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.StabilizedContraption;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.StickerBlock;
|
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.StickerBlock;
|
||||||
|
@ -342,6 +343,10 @@ public abstract class Contraption {
|
||||||
// Bearings potentially create stabilized sub-contraptions
|
// Bearings potentially create stabilized sub-contraptions
|
||||||
if (AllBlocks.MECHANICAL_BEARING.has(state))
|
if (AllBlocks.MECHANICAL_BEARING.has(state))
|
||||||
moveBearing(pos, frontier, visited, state);
|
moveBearing(pos, frontier, visited, state);
|
||||||
|
|
||||||
|
// WM Bearings attach their structure when moved
|
||||||
|
if (AllBlocks.WINDMILL_BEARING.has(state))
|
||||||
|
moveWindmillBearing(pos, frontier, visited, state);
|
||||||
|
|
||||||
// Seats transfer their passenger to the contraption
|
// Seats transfer their passenger to the contraption
|
||||||
if (state.getBlock() instanceof SeatBlock)
|
if (state.getBlock() instanceof SeatBlock)
|
||||||
|
@ -497,6 +502,13 @@ public abstract class Contraption {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void moveWindmillBearing(BlockPos pos, Queue<BlockPos> frontier, Set<BlockPos> visited, BlockState state) {
|
||||||
|
Direction facing = state.get(WindmillBearingBlock.FACING);
|
||||||
|
BlockPos offset = pos.offset(facing);
|
||||||
|
if (!visited.contains(offset))
|
||||||
|
frontier.add(offset);
|
||||||
|
}
|
||||||
|
|
||||||
private void moveBearing(BlockPos pos, Queue<BlockPos> frontier, Set<BlockPos> visited, BlockState state) {
|
private void moveBearing(BlockPos pos, Queue<BlockPos> frontier, Set<BlockPos> visited, BlockState state) {
|
||||||
Direction facing = state.get(MechanicalBearingBlock.FACING);
|
Direction facing = state.get(MechanicalBearingBlock.FACING);
|
||||||
if (!canBeStabilized(facing, pos.subtract(anchor))) {
|
if (!canBeStabilized(facing, pos.subtract(anchor))) {
|
||||||
|
@ -701,8 +713,8 @@ public abstract class Contraption {
|
||||||
c -> seatMapping.put(NBTUtil.readUniqueId(NBTHelper.getINBT(c, "Id")), c.getInt("Seat")));
|
c -> seatMapping.put(NBTUtil.readUniqueId(NBTHelper.getINBT(c, "Id")), c.getInt("Seat")));
|
||||||
|
|
||||||
stabilizedSubContraptions.clear();
|
stabilizedSubContraptions.clear();
|
||||||
NBTHelper.iterateCompoundList(nbt.getList("SubContraptions", NBT.TAG_COMPOUND), c -> stabilizedSubContraptions
|
NBTHelper.iterateCompoundList(nbt.getList("SubContraptions", NBT.TAG_COMPOUND),
|
||||||
.put(c.getUniqueId("Id"), BlockFace.fromNBT(c.getCompound("Location"))));
|
c -> stabilizedSubContraptions.put(c.getUniqueId("Id"), BlockFace.fromNBT(c.getCompound("Location"))));
|
||||||
|
|
||||||
storage.clear();
|
storage.clear();
|
||||||
NBTHelper.iterateCompoundList(nbt.getList("Storage", NBT.TAG_COMPOUND), c -> storage
|
NBTHelper.iterateCompoundList(nbt.getList("Storage", NBT.TAG_COMPOUND), c -> storage
|
||||||
|
@ -831,7 +843,9 @@ public abstract class Contraption {
|
||||||
|
|
||||||
private CompoundNBT writeBlocksCompound() {
|
private CompoundNBT writeBlocksCompound() {
|
||||||
CompoundNBT compound = new CompoundNBT();
|
CompoundNBT compound = new CompoundNBT();
|
||||||
HashMapPalette<BlockState> palette = new HashMapPalette<>(GameData.getBlockStateIDMap(), 16, (i, s) -> {throw new IllegalStateException("Palette Map index exceeded maximum");}, NBTUtil::readBlockState, NBTUtil::writeBlockState);
|
HashMapPalette<BlockState> palette = new HashMapPalette<>(GameData.getBlockStateIDMap(), 16, (i, s) -> {
|
||||||
|
throw new IllegalStateException("Palette Map index exceeded maximum");
|
||||||
|
}, NBTUtil::readBlockState, NBTUtil::writeBlockState);
|
||||||
ListNBT blockList = new ListNBT();
|
ListNBT blockList = new ListNBT();
|
||||||
|
|
||||||
for (BlockInfo block : this.blocks.values()) {
|
for (BlockInfo block : this.blocks.values()) {
|
||||||
|
@ -857,7 +871,9 @@ public abstract class Contraption {
|
||||||
ListNBT blockList;
|
ListNBT blockList;
|
||||||
if (usePalettedDeserialization) {
|
if (usePalettedDeserialization) {
|
||||||
CompoundNBT c = ((CompoundNBT) compound);
|
CompoundNBT c = ((CompoundNBT) compound);
|
||||||
palette = new HashMapPalette<>(GameData.getBlockStateIDMap(), 16, (i, s) -> {throw new IllegalStateException("Palette Map index exceeded maximum");}, NBTUtil::readBlockState, NBTUtil::writeBlockState);
|
palette = new HashMapPalette<>(GameData.getBlockStateIDMap(), 16, (i, s) -> {
|
||||||
|
throw new IllegalStateException("Palette Map index exceeded maximum");
|
||||||
|
}, NBTUtil::readBlockState, NBTUtil::writeBlockState);
|
||||||
palette.read(c.getList("Palette", 10));
|
palette.read(c.getList("Palette", 10));
|
||||||
|
|
||||||
blockList = c.getList("BlockList", 10);
|
blockList = c.getList("BlockList", 10);
|
||||||
|
@ -906,19 +922,15 @@ public abstract class Contraption {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BlockInfo readBlockInfo(CompoundNBT blockListEntry, HashMapPalette<BlockState> palette) {
|
private static BlockInfo readBlockInfo(CompoundNBT blockListEntry, HashMapPalette<BlockState> palette) {
|
||||||
return new BlockInfo(
|
return new BlockInfo(BlockPos.fromLong(blockListEntry.getLong("Pos")),
|
||||||
BlockPos.fromLong(blockListEntry.getLong("Pos")),
|
Objects.requireNonNull(palette.get(blockListEntry.getInt("State"))),
|
||||||
Objects.requireNonNull(palette.get(blockListEntry.getInt("State"))),
|
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null);
|
||||||
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static BlockInfo legacyReadBlockInfo(CompoundNBT blockListEntry) {
|
private static BlockInfo legacyReadBlockInfo(CompoundNBT blockListEntry) {
|
||||||
return new BlockInfo(
|
return new BlockInfo(NBTUtil.readBlockPos(blockListEntry.getCompound("Pos")),
|
||||||
NBTUtil.readBlockPos(blockListEntry.getCompound("Pos")),
|
NBTUtil.readBlockState(blockListEntry.getCompound("Block")),
|
||||||
NBTUtil.readBlockState(blockListEntry.getCompound("Block")),
|
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null);
|
||||||
blockListEntry.contains("Data") ? blockListEntry.getCompound("Data") : null
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeBlocksFromWorld(World world, BlockPos offset) {
|
public void removeBlocksFromWorld(World world, BlockPos offset) {
|
||||||
|
@ -999,8 +1011,7 @@ public abstract class Contraption {
|
||||||
}
|
}
|
||||||
if (state.getBlock() instanceof IWaterLoggable && state.contains(BlockStateProperties.WATERLOGGED)) {
|
if (state.getBlock() instanceof IWaterLoggable && state.contains(BlockStateProperties.WATERLOGGED)) {
|
||||||
FluidState FluidState = world.getFluidState(targetPos);
|
FluidState FluidState = world.getFluidState(targetPos);
|
||||||
state = state.with(BlockStateProperties.WATERLOGGED,
|
state = state.with(BlockStateProperties.WATERLOGGED, FluidState.getFluid() == Fluids.WATER);
|
||||||
FluidState.getFluid() == Fluids.WATER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
world.destroyBlock(targetPos, true);
|
world.destroyBlock(targetPos, true);
|
||||||
|
@ -1232,8 +1243,8 @@ public abstract class Contraption {
|
||||||
|
|
||||||
float distSq = a * a + b * b;
|
float distSq = a * a + b * b;
|
||||||
|
|
||||||
|
if (distSq > maxDistSq)
|
||||||
if (distSq > maxDistSq) maxDistSq = distSq;
|
maxDistSq = distSq;
|
||||||
}
|
}
|
||||||
|
|
||||||
return maxDistSq;
|
return maxDistSq;
|
||||||
|
|
|
@ -103,6 +103,11 @@ public class PumpTileEntity extends KineticTileEntity {
|
||||||
BlockPos backPos = pos.offset(getFront().getOpposite());
|
BlockPos backPos = pos.offset(getFront().getOpposite());
|
||||||
FluidPropagator.propagateChangedPipe(world, frontPos, world.getBlockState(frontPos));
|
FluidPropagator.propagateChangedPipe(world, frontPos, world.getBlockState(frontPos));
|
||||||
FluidPropagator.propagateChangedPipe(world, backPos, world.getBlockState(backPos));
|
FluidPropagator.propagateChangedPipe(world, backPos, world.getBlockState(backPos));
|
||||||
|
|
||||||
|
FluidTransportBehaviour behaviour = getBehaviour(FluidTransportBehaviour.TYPE);
|
||||||
|
if (behaviour != null)
|
||||||
|
behaviour.wipePressure();
|
||||||
|
sidesToUpdate.forEach(MutableBoolean::setTrue);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void distributePressureTo(Direction side) {
|
protected void distributePressureTo(Direction side) {
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package com.simibubi.create.content.contraptions.fluids.tank;
|
package com.simibubi.create.content.contraptions.fluids.tank;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
||||||
|
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
public class CreativeFluidTankTileEntity extends FluidTankTileEntity {
|
public class CreativeFluidTankTileEntity extends FluidTankTileEntity {
|
||||||
|
@ -17,6 +19,11 @@ public class CreativeFluidTankTileEntity extends FluidTankTileEntity {
|
||||||
protected SmartFluidTank createInventory() {
|
protected SmartFluidTank createInventory() {
|
||||||
return new CreativeSmartFluidTank(getCapacityMultiplier(), this::onFluidStackChanged);
|
return new CreativeSmartFluidTank(getCapacityMultiplier(), this::onFluidStackChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addToGoggleTooltip(List<ITextComponent> tooltip, boolean isPlayerSneaking) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static class CreativeSmartFluidTank extends SmartFluidTank {
|
public static class CreativeSmartFluidTank extends SmartFluidTank {
|
||||||
|
|
||||||
|
|
|
@ -141,6 +141,8 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
|
||||||
FluidTankTileEntity tankAt = FluidTankConnectivityHandler.anyTankAt(world, pos);
|
FluidTankTileEntity tankAt = FluidTankConnectivityHandler.anyTankAt(world, pos);
|
||||||
if (tankAt == null)
|
if (tankAt == null)
|
||||||
continue;
|
continue;
|
||||||
|
world.updateComparatorOutputLevel(pos, tankAt.getBlockState()
|
||||||
|
.getBlock());
|
||||||
if (tankAt.luminosity == actualLuminosity)
|
if (tankAt.luminosity == actualLuminosity)
|
||||||
continue;
|
continue;
|
||||||
tankAt.setLuminosity(actualLuminosity);
|
tankAt.setLuminosity(actualLuminosity);
|
||||||
|
@ -315,8 +317,11 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addToGoggleTooltip(List<ITextComponent> tooltip, boolean isPlayerSneaking) {
|
public boolean addToGoggleTooltip(List<ITextComponent> tooltip, boolean isPlayerSneaking) {
|
||||||
|
FluidTankTileEntity controllerTE = getControllerTE();
|
||||||
|
if (controllerTE == null)
|
||||||
|
return false;
|
||||||
return containedFluidTooltip(tooltip, isPlayerSneaking,
|
return containedFluidTooltip(tooltip, isPlayerSneaking,
|
||||||
getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY));
|
controllerTE.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -69,7 +69,7 @@ public abstract class AbstractFilterScreen<F extends AbstractFilterContainer> ex
|
||||||
textRenderer.draw(ms, I18n.format(container.filterItem.getTranslationKey()), x + 15, y + 3, 0xdedede);
|
textRenderer.draw(ms, I18n.format(container.filterItem.getTranslationKey()), x + 15, y + 3, 0xdedede);
|
||||||
|
|
||||||
GuiGameElement.of(container.filterItem)
|
GuiGameElement.of(container.filterItem)
|
||||||
.<GuiGameElement.GuiRenderBuilder>at(x + background.width, guiTop + background.height - 60)
|
.<GuiGameElement.GuiRenderBuilder>at(x + background.width, guiTop + background.height - 60, -200)
|
||||||
.scale(5)
|
.scale(5)
|
||||||
.render(ms);
|
.render(ms);
|
||||||
|
|
||||||
|
|
|
@ -948,6 +948,27 @@ public class StandardRecipeGen extends CreateRecipeProvider {
|
||||||
.viaShapeless(b -> b.addIngredient(AllItems.WHEAT_FLOUR.get())
|
.viaShapeless(b -> b.addIngredient(AllItems.WHEAT_FLOUR.get())
|
||||||
.addIngredient(Items.WATER_BUCKET)),
|
.addIngredient(Items.WATER_BUCKET)),
|
||||||
|
|
||||||
|
DIVING_HELMET = create(AllItems.DIVING_HELMET).unlockedByTag(I::copper)
|
||||||
|
.viaShaped(b -> b.key('G', Tags.Items.GLASS)
|
||||||
|
.key('P', I.copper())
|
||||||
|
.patternLine("PPP")
|
||||||
|
.patternLine("PGP")),
|
||||||
|
|
||||||
|
COPPER_BACKTANK = create(AllItems.COPPER_BACKTANK).unlockedByTag(I::copper)
|
||||||
|
.viaShaped(b -> b.key('G', I.shaft())
|
||||||
|
.key('A', I.andesite())
|
||||||
|
.key('P', I.copper())
|
||||||
|
.patternLine("AGA")
|
||||||
|
.patternLine("PPP")
|
||||||
|
.patternLine(" P ")),
|
||||||
|
|
||||||
|
DIVING_BOOTS = create(AllItems.DIVING_BOOTS).unlockedByTag(I::copper)
|
||||||
|
.viaShaped(b -> b.key('G', I.andesite())
|
||||||
|
.key('P', I.copper())
|
||||||
|
.patternLine("P P")
|
||||||
|
.patternLine("P P")
|
||||||
|
.patternLine("G G")),
|
||||||
|
|
||||||
SLIME_BALL = create(() -> Items.SLIME_BALL).unlockedBy(AllItems.DOUGH::get)
|
SLIME_BALL = create(() -> Items.SLIME_BALL).unlockedBy(AllItems.DOUGH::get)
|
||||||
.viaShapeless(b -> b.addIngredient(AllItems.DOUGH.get())
|
.viaShapeless(b -> b.addIngredient(AllItems.DOUGH.get())
|
||||||
.addIngredient(Tags.Items.DYES_LIME)),
|
.addIngredient(Tags.Items.DYES_LIME)),
|
||||||
|
|
|
@ -160,7 +160,7 @@ public class InvManipulationBehaviour extends TileEntityBehaviour {
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
super.tick();
|
super.tick();
|
||||||
if (findNewNextTick) {
|
if (findNewNextTick || getWorld().getGameTime() % 64 == 0) {
|
||||||
findNewNextTick = false;
|
findNewNextTick = false;
|
||||||
findNewCapability();
|
findNewCapability();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue