Merge remote-tracking branch 'upstream/mc1.16/dev' into mc1.16/fix-bugs
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 506 B After Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 522 B After Width: | Height: | Size: 350 B |
Before Width: | Height: | Size: 634 B After Width: | Height: | Size: 373 B |
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 653 B |
Before Width: | Height: | Size: 567 B After Width: | Height: | Size: 408 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 529 B After Width: | Height: | Size: 356 B |
Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 770 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 302 B |
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 505 B |
Before Width: | Height: | Size: 470 B After Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 360 B After Width: | Height: | Size: 297 B |
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 291 B |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 245 B |
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 284 B |
Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 878 B |
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 542 B After Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 175 B |
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 149 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 326 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 268 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 365 B |
Before Width: | Height: | Size: 789 B After Width: | Height: | Size: 473 B |
Before Width: | Height: | Size: 867 B After Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 304 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 544 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 567 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 599 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 608 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 609 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 631 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 590 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 619 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 572 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 601 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 622 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 588 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 617 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 574 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 589 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 594 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 626 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 608 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 616 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 606 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 631 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 604 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 631 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 613 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 641 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 607 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 651 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 563 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 600 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 614 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 637 B |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 269 B |
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 311 B |
Before Width: | Height: | Size: 549 B After Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 567 B After Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 518 B After Width: | Height: | Size: 262 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 711 B |
Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 292 B |
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 252 B |
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 328 B |
Before Width: | Height: | Size: 514 B After Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 284 B |
Before Width: | Height: | Size: 576 B After Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 632 B After Width: | Height: | Size: 278 B |
Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 483 B |
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 398 B After Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 719 B |