From 88d52814c58ea7e7916d69f67a2a2c2c619514a3 Mon Sep 17 00:00:00 2001 From: grimmauld Date: Wed, 23 Sep 2020 23:14:00 +0200 Subject: [PATCH] Fixed tagging and some misc --- .../components/deployer/DeployerHandler.java | 5 +++-- .../ContraptionCollider.java | 2 +- .../foundation/advancement/SimpleTrigger.java | 3 ++- .../recipe/MechanicalCraftingRecipeGen.java | 20 +++++++++---------- .../data/recipe/StandardRecipeGen.java | 13 ++++++------ .../foundation/gui/TextInputPromptScreen.java | 2 +- .../foundation/utility/BlockHelper.java | 14 +++++++++++++ 7 files changed, 38 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java index 77b8a47ee..c3c72b410 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java @@ -6,6 +6,7 @@ import static net.minecraftforge.eventbus.api.Event.Result.DENY; import java.util.ArrayList; import java.util.List; +import com.simibubi.create.foundation.utility.BlockHelper; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.block.*; import net.minecraft.enchantment.EnchantmentHelper; @@ -148,7 +149,7 @@ public class DeployerHandler { if (entity.processInitialInteract(player, hand).isAccepted()) success = true; else if (entity instanceof LivingEntity - && stack.interactWithEntity(player, (LivingEntity) entity, hand)) + && stack.useOnEntity(player, (LivingEntity) entity, hand).isAccepted()) success = true; } if (!success && stack.isFood() && entity instanceof PlayerEntity) { @@ -198,7 +199,7 @@ public class DeployerHandler { LeftClickBlock event = ForgeHooks.onLeftClickBlock(player, clickedPos, face); if (event.isCanceled()) return; - if (world.extinguishFire(player, clickedPos, face)) + if (BlockHelper.extinguishFire(world, player, clickedPos, face)) // FIXME: is there an equivalent in world, as there was in 1.15? return; if (event.getUseBlock() != DENY) clickedState.onBlockClicked(world, clickedPos, player); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java index 8a6e01a9f..de82b9a3f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java @@ -266,7 +266,7 @@ public class ContraptionCollider { VoxelShapes.compare(voxelshape, VoxelShapes.create(bb.shrink(1.0E-7D)), IBooleanFunction.AND) ? Stream.empty() : Stream.of(voxelshape); - Stream stream1 = world.getEmptyCollisionShapes(e, bb.expand(movement), ImmutableSet.of()); + Stream stream1 = world.getEntityCollisions(e, bb.expand(movement), entity -> false); // FIXME: 1.15 equivalent translated correctly? ReuseableStream reuseablestream = new ReuseableStream<>(Stream.concat(stream1, stream)); Vector3d Vector3d = movement.lengthSquared() == 0.0D ? movement : collideBoundingBoxHeuristically(e, movement, bb, world, ctx, reuseablestream); diff --git a/src/main/java/com/simibubi/create/foundation/advancement/SimpleTrigger.java b/src/main/java/com/simibubi/create/foundation/advancement/SimpleTrigger.java index 46d032a9d..3ef8c5add 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/SimpleTrigger.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/SimpleTrigger.java @@ -6,6 +6,7 @@ import java.util.function.Supplier; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; +import net.minecraft.advancements.criterion.EntityPredicate; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.loot.ConditionArrayParser; import net.minecraft.util.ResourceLocation; @@ -32,7 +33,7 @@ public class SimpleTrigger extends CriterionTriggerBase public static class Instance extends CriterionTriggerBase.Instance { public Instance(ResourceLocation idIn) { - super(idIn); + super(idIn, EntityPredicate.AndPredicate.EMPTY); // FIXME: Is this right? } @Override diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java index 51defc089..4837119eb 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java @@ -20,8 +20,8 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { GeneratedRecipe CRUSHING_WHEEL = create(AllBlocks.CRUSHING_WHEEL::get).returns(2) - .recipe(b -> b.key('P', ItemTags.PLANKS) - .key('S', I.stone()) + .recipe(b -> b.key('P', Ingredient.fromTag(ItemTags.PLANKS)) + .key('S', Ingredient.fromTag(I.stone())) .key('A', I.andesite()) .patternLine(" AAA ") .patternLine("AAPAA") @@ -31,18 +31,18 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { INTEGRATED_CIRCUIT = create(AllItems.INTEGRATED_CIRCUIT::get).returns(1) .recipe(b -> b.key('L', AllItems.LAPIS_SHEET.get()) - .key('R', I.redstone()) + .key('R', Ingredient.fromTag(I.redstone())) .key('Q', AllItems.POLISHED_ROSE_QUARTZ.get()) - .key('C', Tags.Items.NUGGETS_GOLD) + .key('C', Ingredient.fromTag(Tags.Items.NUGGETS_GOLD)) .patternLine(" L ") .patternLine("RRQRR") .patternLine(" CCC ")), EXTENDO_GRIP = create(AllItems.EXTENDO_GRIP::get).returns(1) - .recipe(b -> b.key('L', I.brass()) + .recipe(b -> b.key('L', Ingredient.fromTag(I.brass())) .key('R', I.cog()) .key('H', AllItems.BRASS_HAND.get()) - .key('S', Tags.Items.RODS_WOODEN) + .key('S', Ingredient.fromTag(Tags.Items.RODS_WOODEN)) .patternLine(" L ") .patternLine(" R ") .patternLine("SSS") @@ -50,8 +50,8 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine(" H ")), FURNACE_ENGINE = create(AllBlocks.FURNACE_ENGINE::get).returns(1) - .recipe(b -> b.key('P', I.brassSheet()) - .key('B', I.brass()) + .recipe(b -> b.key('P', Ingredient.fromTag(I.brassSheet())) + .key('B', Ingredient.fromTag(I.brass())) .key('I', Ingredient.fromItems(Blocks.PISTON, Blocks.STICKY_PISTON)) .key('C', I.brassCasing()) .patternLine("PPB") @@ -59,7 +59,7 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine("PPB")), FLYWHEEL = create(AllBlocks.FLYWHEEL::get).returns(1) - .recipe(b -> b.key('B', I.brass()) + .recipe(b -> b.key('B', Ingredient.fromTag(I.brass())) .key('C', I.brassCasing()) .patternLine(" BBB") .patternLine("CB B") @@ -71,7 +71,7 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine("EBE")), MECHANICAL_ARM = create(AllBlocks.MECHANICAL_ARM::get).returns(1) - .recipe(b -> b.key('L', I.brassSheet()) + .recipe(b -> b.key('L', Ingredient.fromTag(I.brassSheet())) .key('R', I.cog()) .key('I', I.circuit()) .key('A', I.andesite()) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index cd8f69208..3dc167f38 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -27,6 +27,7 @@ import net.minecraft.item.Items; import net.minecraft.item.crafting.CookingRecipeSerializer; import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.item.crafting.Ingredient; +import net.minecraft.tags.ITag; import net.minecraft.tags.ItemTags; import net.minecraft.tags.Tag; import net.minecraft.util.IItemProvider; @@ -863,7 +864,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { .inBlastFurnace(); } - GeneratedRecipe blastMetalOre(Supplier result, Tag ore) { + GeneratedRecipe blastMetalOre(Supplier result, ITag ore) { return create(result::get).withSuffix("_from_ore").viaCookingTag(() -> ore) .rewardXP(.1f) .inBlastFurnace(); @@ -886,13 +887,13 @@ public class StandardRecipeGen extends CreateRecipeProvider { } GeneratedRecipe metalCompacting(List> variants, - List>> ingredients) { + List>> ingredients) { GeneratedRecipe result = null; for (int i = 0; i + 1 < variants.size(); i++) { ItemProviderEntry currentEntry = variants.get(i); ItemProviderEntry nextEntry = variants.get(i + 1); - Supplier> currentIngredient = ingredients.get(i); - Supplier> nextIngredient = ingredients.get(i + 1); + Supplier> currentIngredient = ingredients.get(i); + Supplier> nextIngredient = ingredients.get(i + 1); result = create(nextEntry).withSuffix("_from_compacting") .unlockedBy(currentEntry::get) @@ -948,7 +949,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { return this; } - GeneratedRecipeBuilder unlockedByTag(Supplier> tag) { + GeneratedRecipeBuilder unlockedByTag(Supplier> tag) { this.unlockedBy = () -> ItemPredicate.Builder.create() .tag(tag.get()) .build(); @@ -996,7 +997,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { return unlockedBy(item).viaCookingIngredient(() -> Ingredient.fromItems(item.get())); } - GeneratedCookingRecipeBuilder viaCookingTag(Supplier> tag) { + GeneratedCookingRecipeBuilder viaCookingTag(Supplier> tag) { return unlockedByTag(tag).viaCookingIngredient(() -> Ingredient.fromTag(tag.get())); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/TextInputPromptScreen.java b/src/main/java/com/simibubi/create/foundation/gui/TextInputPromptScreen.java index 1828b927d..376472d79 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/TextInputPromptScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/TextInputPromptScreen.java @@ -69,7 +69,7 @@ public class TextInputPromptScreen extends AbstractSimiScreen { @Override public void renderWindow(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { - AllGuiTextures.TEXT_INPUT.draw(this, guiLeft, guiTop); + AllGuiTextures.TEXT_INPUT.draw(matrixStack, this, guiLeft, guiTop); textRenderer.draw(matrixStack, title, guiLeft + (sWidth / 2) - (textRenderer.getWidth(title) / 2), guiTop + 11, AllGuiTextures.FONT_COLOR); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java index 3128571bc..50882f9ea 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java @@ -2,6 +2,7 @@ package com.simibubi.create.foundation.utility; import java.util.function.Consumer; +import net.minecraft.block.Blocks; import net.minecraft.client.world.ClientWorld; import net.minecraft.item.Items; import net.minecraft.state.Property; @@ -30,6 +31,8 @@ import net.minecraft.world.server.ServerWorld; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import javax.annotation.Nullable; + public class BlockHelper { @OnlyIn(Dist.CLIENT) @@ -196,4 +199,15 @@ public class BlockHelper { public static boolean hasBlockSolidSide(BlockState p_220056_0_, IBlockReader p_220056_1_, BlockPos p_220056_2_, Direction p_220056_3_) { return !p_220056_0_.isIn(BlockTags.LEAVES) && Block.doesSideFillSquare(p_220056_0_.getCollisionShape(p_220056_1_, p_220056_2_), p_220056_3_); } + + public static boolean extinguishFire(World world, @Nullable PlayerEntity p_175719_1_, BlockPos p_175719_2_, Direction p_175719_3_) { + p_175719_2_ = p_175719_2_.offset(p_175719_3_); + if (world.getBlockState(p_175719_2_).getBlock() == Blocks.FIRE) { + world.playEvent(p_175719_1_, 1009, p_175719_2_, 0); + world.removeBlock(p_175719_2_, false); + return true; + } else { + return false; + } + } }