Fixed Conduit and Beacon Activation on Vanilla Servers (#6438)
This commit is contained in:
parent
a740044e21
commit
daff482092
10 changed files with 40 additions and 54 deletions
|
@ -1,11 +1,14 @@
|
||||||
--- a/net/minecraft/tileentity/ConduitTileEntity.java
|
--- a/net/minecraft/tileentity/ConduitTileEntity.java
|
||||||
+++ b/net/minecraft/tileentity/ConduitTileEntity.java
|
+++ b/net/minecraft/tileentity/ConduitTileEntity.java
|
||||||
@@ -131,7 +131,7 @@
|
@@ -131,10 +131,8 @@
|
||||||
BlockPos blockpos1 = this.field_174879_c.func_177982_a(j1, k1, l1);
|
BlockPos blockpos1 = this.field_174879_c.func_177982_a(j1, k1, l1);
|
||||||
BlockState blockstate = this.field_145850_b.func_180495_p(blockpos1);
|
BlockState blockstate = this.field_145850_b.func_180495_p(blockpos1);
|
||||||
|
|
||||||
- for(Block block : field_205042_e) {
|
- for(Block block : field_205042_e) {
|
||||||
+ for(Block block : net.minecraftforge.common.Tags.Blocks.SUPPORTS_CONDUIT.func_199885_a()) {
|
- if (blockstate.func_177230_c() == block) {
|
||||||
if (blockstate.func_177230_c() == block) {
|
+ if (blockstate.isConduitFrame(this.field_145850_b, blockpos1, func_174877_v())) {
|
||||||
this.field_205046_i.add(blockpos1);
|
this.field_205046_i.add(blockpos1);
|
||||||
}
|
- }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"minecraft:emerald_block",
|
|
||||||
"minecraft:gold_block",
|
|
||||||
"minecraft:diamond_block",
|
|
||||||
"minecraft:iron_block"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"minecraft:prismarine",
|
|
||||||
"minecraft:prismarine_bricks",
|
|
||||||
"minecraft:sea_lantern",
|
|
||||||
"minecraft:dark_prismarine"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"minecraft:emerald_block",
|
|
||||||
"minecraft:gold_block",
|
|
||||||
"minecraft:diamond_block",
|
|
||||||
"minecraft:iron_block"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"minecraft:prismarine",
|
|
||||||
"minecraft:prismarine_bricks",
|
|
||||||
"minecraft:sea_lantern",
|
|
||||||
"minecraft:dark_prismarine"
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -112,9 +112,6 @@ public class Tags
|
||||||
public static final Tag<Block> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
|
public static final Tag<Block> STORAGE_BLOCKS_QUARTZ = tag("storage_blocks/quartz");
|
||||||
public static final Tag<Block> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
|
public static final Tag<Block> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
|
||||||
|
|
||||||
public static final Tag<Block> SUPPORTS_BEACON = tag("supports_beacon");
|
|
||||||
public static final Tag<Block> SUPPORTS_CONDUIT = tag("supports_conduit");
|
|
||||||
|
|
||||||
private static Tag<Block> tag(String name)
|
private static Tag<Block> tag(String name)
|
||||||
{
|
{
|
||||||
return new BlockTags.Wrapper(new ResourceLocation("forge", name));
|
return new BlockTags.Wrapper(new ResourceLocation("forge", name));
|
||||||
|
@ -270,9 +267,6 @@ public class Tags
|
||||||
public static final Tag<Item> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
|
public static final Tag<Item> STORAGE_BLOCKS_REDSTONE = tag("storage_blocks/redstone");
|
||||||
public static final Tag<Item> STRING = tag("string");
|
public static final Tag<Item> STRING = tag("string");
|
||||||
|
|
||||||
public static final Tag<Item> SUPPORTS_BEACON = tag("supports_beacon");
|
|
||||||
public static final Tag<Item> SUPPORTS_CONDUIT = tag("supports_conduit");
|
|
||||||
|
|
||||||
private static Tag<Item> tag(String name)
|
private static Tag<Item> tag(String name)
|
||||||
{
|
{
|
||||||
return new ItemTags.Wrapper(new ResourceLocation("forge", name));
|
return new ItemTags.Wrapper(new ResourceLocation("forge", name));
|
||||||
|
|
|
@ -96,8 +96,6 @@ public class ForgeBlockTagsProvider extends BlockTagsProvider
|
||||||
getBuilder(STORAGE_BLOCKS_LAPIS).add(Blocks.LAPIS_BLOCK);
|
getBuilder(STORAGE_BLOCKS_LAPIS).add(Blocks.LAPIS_BLOCK);
|
||||||
getBuilder(STORAGE_BLOCKS_QUARTZ).add(Blocks.QUARTZ_BLOCK);
|
getBuilder(STORAGE_BLOCKS_QUARTZ).add(Blocks.QUARTZ_BLOCK);
|
||||||
getBuilder(STORAGE_BLOCKS_REDSTONE).add(Blocks.REDSTONE_BLOCK);
|
getBuilder(STORAGE_BLOCKS_REDSTONE).add(Blocks.REDSTONE_BLOCK);
|
||||||
getBuilder(SUPPORTS_BEACON).add(Blocks.EMERALD_BLOCK, Blocks.GOLD_BLOCK, Blocks.DIAMOND_BLOCK, Blocks.IRON_BLOCK);
|
|
||||||
getBuilder(SUPPORTS_CONDUIT).add(Blocks.PRISMARINE, Blocks.PRISMARINE_BRICKS, Blocks.SEA_LANTERN, Blocks.DARK_PRISMARINE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addColored(Consumer<Block> consumer, Tag<Block> group, String pattern)
|
private void addColored(Consumer<Block> consumer, Tag<Block> group, String pattern)
|
||||||
|
|
|
@ -142,8 +142,6 @@ public class ForgeItemTagsProvider extends ItemTagsProvider
|
||||||
copy(Tags.Blocks.STORAGE_BLOCKS_QUARTZ, Tags.Items.STORAGE_BLOCKS_QUARTZ);
|
copy(Tags.Blocks.STORAGE_BLOCKS_QUARTZ, Tags.Items.STORAGE_BLOCKS_QUARTZ);
|
||||||
copy(Tags.Blocks.STORAGE_BLOCKS_REDSTONE, Tags.Items.STORAGE_BLOCKS_REDSTONE);
|
copy(Tags.Blocks.STORAGE_BLOCKS_REDSTONE, Tags.Items.STORAGE_BLOCKS_REDSTONE);
|
||||||
getBuilder(Tags.Items.STRING).add(Items.STRING);
|
getBuilder(Tags.Items.STRING).add(Items.STRING);
|
||||||
copy(Tags.Blocks.SUPPORTS_BEACON, Tags.Items.SUPPORTS_BEACON);
|
|
||||||
copy(Tags.Blocks.SUPPORTS_CONDUIT, Tags.Items.SUPPORTS_CONDUIT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addColored(Consumer<Tag<Item>> consumer, Tag<Item> group, String pattern)
|
private void addColored(Consumer<Tag<Item>> consumer, Tag<Item> group, String pattern)
|
||||||
|
|
|
@ -40,7 +40,6 @@ import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.particle.ParticleManager;
|
import net.minecraft.client.particle.ParticleManager;
|
||||||
import net.minecraft.client.renderer.ActiveRenderInfo;
|
import net.minecraft.client.renderer.ActiveRenderInfo;
|
||||||
import net.minecraft.client.renderer.model.IBakedModel;
|
|
||||||
import net.minecraft.enchantment.EnchantmentHelper;
|
import net.minecraft.enchantment.EnchantmentHelper;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.MobEntity;
|
import net.minecraft.entity.MobEntity;
|
||||||
|
@ -55,7 +54,6 @@ import net.minecraft.fluid.IFluidState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.potion.Effects;
|
import net.minecraft.potion.Effects;
|
||||||
import net.minecraft.item.DyeColor;
|
import net.minecraft.item.DyeColor;
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.pathfinding.PathNodeType;
|
import net.minecraft.pathfinding.PathNodeType;
|
||||||
import net.minecraft.state.IProperty;
|
import net.minecraft.state.IProperty;
|
||||||
|
@ -82,7 +80,6 @@ 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;
|
||||||
import net.minecraftforge.common.IPlantable;
|
import net.minecraftforge.common.IPlantable;
|
||||||
import net.minecraftforge.common.Tags;
|
|
||||||
import net.minecraftforge.common.ToolType;
|
import net.minecraftforge.common.ToolType;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
|
@ -570,7 +567,26 @@ public interface IForgeBlock
|
||||||
*/
|
*/
|
||||||
default boolean isBeaconBase(BlockState state, IWorldReader world, BlockPos pos, BlockPos beacon)
|
default boolean isBeaconBase(BlockState state, IWorldReader world, BlockPos pos, BlockPos beacon)
|
||||||
{
|
{
|
||||||
return Tags.Blocks.SUPPORTS_BEACON.contains(state.getBlock());
|
return state.getBlock() == Blocks.IRON_BLOCK ||
|
||||||
|
state.getBlock() == Blocks.GOLD_BLOCK ||
|
||||||
|
state.getBlock() == Blocks.DIAMOND_BLOCK ||
|
||||||
|
state.getBlock() == Blocks.EMERALD_BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if this block can be used as the frame of a conduit.
|
||||||
|
*
|
||||||
|
* @param world The current world
|
||||||
|
* @param pos Block position in world
|
||||||
|
* @param conduit Conduit position in world
|
||||||
|
* @return True, to support the conduit, and make it active with this block.
|
||||||
|
*/
|
||||||
|
default boolean isConduitFrame(BlockState state, IWorldReader world, BlockPos pos, BlockPos conduit)
|
||||||
|
{
|
||||||
|
return state.getBlock() == Blocks.PRISMARINE ||
|
||||||
|
state.getBlock() == Blocks.PRISMARINE_BRICKS ||
|
||||||
|
state.getBlock() == Blocks.SEA_LANTERN ||
|
||||||
|
state.getBlock() == Blocks.DARK_PRISMARINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -495,6 +495,19 @@ public interface IForgeBlockState
|
||||||
return getBlockState().getBlock().isBeaconBase(getBlockState(), world, pos, beacon);
|
return getBlockState().getBlock().isBeaconBase(getBlockState(), world, pos, beacon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if this block can be used as the frame of a conduit.
|
||||||
|
*
|
||||||
|
* @param world The current world
|
||||||
|
* @param pos Block position in world
|
||||||
|
* @param conduit Conduit position in world
|
||||||
|
* @return True, to support the conduit, and make it active with this block.
|
||||||
|
*/
|
||||||
|
default boolean isConduitFrame(IWorldReader world, BlockPos pos, BlockPos conduit)
|
||||||
|
{
|
||||||
|
return getBlockState().getBlock().isConduitFrame(getBlockState(), world, pos, conduit);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines if this block can be used as part of a frame of a nether portal.
|
* Determines if this block can be used as part of a frame of a nether portal.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue