Merge remote-tracking branch 'origin/master' into fabric-1.16

# Conflicts:
#	src/main/java/appeng/block/AEBaseBlockItem.java
#	src/main/java/appeng/core/AEConfig.java
#	src/main/java/appeng/parts/PartPlacement.java
This commit is contained in:
Sebastian Hartte
2020-07-02 01:15:30 +02:00
5 changed files with 53 additions and 25 deletions
@@ -122,7 +122,7 @@ public class AEBaseBlockItem extends BlockItem {
} }
ActionResult result = super.place(context); ActionResult result = super.place(context);
if (result != ActionResult.SUCCESS) { if (!result.isAccepted()) {
return result; return result;
} }
@@ -132,7 +132,7 @@ public class AEBaseBlockItem extends BlockItem {
ori = tile; ori = tile;
if (tile == null) { if (tile == null) {
return ActionResult.SUCCESS; return result;
} }
if (ori.canBeRotated() && !this.blockType.hasCustomRotation()) { if (ori.canBeRotated() && !this.blockType.hasCustomRotation()) {
@@ -148,7 +148,7 @@ public class AEBaseBlockItem extends BlockItem {
ori.setOrientation(forward, up); ori.setOrientation(forward, up);
} }
return ActionResult.SUCCESS; return result;
} }
} }
+3 -2
View File
@@ -159,9 +159,10 @@ public final class AEConfig {
this.matterCannonBattery = commonConfig.matterCannonBattery.get(); this.matterCannonBattery = commonConfig.matterCannonBattery.get();
this.featureFlags.clear(); this.featureFlags.clear();
for (final AEFeature feature : AEFeature.values()) { for (final AEFeature feature : AEFeature.values()) {
if (feature.isVisible()) { if (feature.isVisible() && feature.isConfig()) {
if (commonConfig.enabledFeatures.containsKey(feature)) { if (commonConfig.enabledFeatures.containsKey(feature) && commonConfig.enabledFeatures.get(feature).get()) {
this.featureFlags.add(feature); this.featureFlags.add(feature);
} }
} else { } else {
@@ -19,9 +19,6 @@
package appeng.core; package appeng.core;
import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IDefinitions;
import appeng.api.definitions.IItems;
import appeng.api.definitions.IMaterials;
import appeng.api.definitions.IParts;
import appeng.bootstrap.FeatureFactory; import appeng.bootstrap.FeatureFactory;
import appeng.core.api.definitions.ApiBlocks; import appeng.core.api.definitions.ApiBlocks;
import appeng.core.api.definitions.ApiItems; import appeng.core.api.definitions.ApiItems;
@@ -57,17 +54,17 @@ public final class ApiDefinitions implements IDefinitions {
} }
@Override @Override
public IItems items() { public ApiItems items() {
return items; return items;
} }
@Override @Override
public IMaterials materials() { public ApiMaterials materials() {
return materials; return materials;
} }
@Override @Override
public IParts parts() { public ApiParts parts() {
return parts; return parts;
} }
} }
+9 -13
View File
@@ -20,7 +20,6 @@ package appeng.parts;
import appeng.api.AEApi; import appeng.api.AEApi;
import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlockDefinition;
import appeng.api.definitions.IItems;
import appeng.api.parts.*; import appeng.api.parts.*;
import appeng.api.util.AEPartLocation; import appeng.api.util.AEPartLocation;
import appeng.api.util.DimensionalCoord; import appeng.api.util.DimensionalCoord;
@@ -51,7 +50,6 @@ import net.minecraft.world.World;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
public class PartPlacement { public class PartPlacement {
@@ -215,24 +213,22 @@ public class PartPlacement {
host = (IPartHost) tile; host = (IPartHost) tile;
} }
final Optional<ItemStack> maybeMultiPartStack = multiPart.maybeStack(1); ItemStack multiPartStack = multiPart.stack(1);
final Optional<Block> maybeMultiPartBlock = multiPart.maybeBlock(); Block multiPartBlock = multiPart.block();
final Optional<BlockItem> maybeMultiPartBlockItem = multiPart.maybeBlockItem(); BlockItem multiPartBlockItem = multiPart.blockItem();
final boolean hostIsNotPresent = host == null; boolean hostIsNotPresent = host == null;
final boolean multiPartPresent = maybeMultiPartBlock.isPresent() && maybeMultiPartStack.isPresent() BlockState multiPartBlockState = multiPartBlock.getDefaultState();
&& maybeMultiPartBlockItem.isPresent(); boolean canMultiPartBePlaced = multiPartBlockState.canPlaceAt(world, te_pos);
BlockState multiPartBlockState = maybeMultiPartBlock.get().getDefaultState();
final boolean canMultiPartBePlaced = multiPartBlockState.canPlaceAt(world, te_pos);
// We cannot override the item stack of normal use context, so we use this hack // We cannot override the item stack of normal use context, so we use this hack
ItemPlacementContext mpUseCtx = new ItemPlacementContext( ItemPlacementContext mpUseCtx = new ItemPlacementContext(
new AutomaticItemPlacementContext(world, te_pos, side, maybeMultiPartStack.get(), side)); new AutomaticItemPlacementContext(world, te_pos, side, multiPartStack, side));
// FIXME: This is super-fishy and all needs to be re-checked. what does this // FIXME: This is super-fishy and all needs to be re-checked. what does this
// even do??? // even do???
if (hostIsNotPresent && multiPartPresent && canMultiPartBePlaced if (hostIsNotPresent && canMultiPartBePlaced
&& maybeMultiPartBlockItem.get().place(mpUseCtx) == ActionResult.SUCCESS) { && multiPartBlockItem.place(mpUseCtx).isAccepted()) {
if (!world.isClient) { if (!world.isClient) {
tile = world.getBlockEntity(te_pos); tile = world.getBlockEntity(te_pos);
@@ -18,6 +18,8 @@
package appeng.integration.modules.jei; package appeng.integration.modules.jei;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Optional; import java.util.Optional;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
@@ -32,7 +34,12 @@ import mezz.jei.api.IModPlugin;
import mezz.jei.api.JeiPlugin; import mezz.jei.api.JeiPlugin;
import mezz.jei.api.constants.VanillaRecipeCategoryUid; import mezz.jei.api.constants.VanillaRecipeCategoryUid;
import mezz.jei.api.constants.VanillaTypes; import mezz.jei.api.constants.VanillaTypes;
import mezz.jei.api.registration.*; import mezz.jei.api.registration.IAdvancedRegistration;
import mezz.jei.api.registration.IRecipeCatalystRegistration;
import mezz.jei.api.registration.IRecipeCategoryRegistration;
import mezz.jei.api.registration.IRecipeRegistration;
import mezz.jei.api.registration.IRecipeTransferRegistration;
import mezz.jei.api.registration.ISubtypeRegistration;
import mezz.jei.api.runtime.IJeiRuntime; import mezz.jei.api.runtime.IJeiRuntime;
import appeng.api.AEApi; import appeng.api.AEApi;
@@ -44,6 +51,7 @@ import appeng.api.features.AEFeature;
import appeng.container.implementations.CraftingTermContainer; import appeng.container.implementations.CraftingTermContainer;
import appeng.container.implementations.PatternTermContainer; import appeng.container.implementations.PatternTermContainer;
import appeng.core.AEConfig; import appeng.core.AEConfig;
import appeng.core.Api;
import appeng.core.AppEng; import appeng.core.AppEng;
import appeng.core.localization.GuiText; import appeng.core.localization.GuiText;
import appeng.integration.abstraction.JEIFacade; import appeng.integration.abstraction.JEIFacade;
@@ -169,6 +177,32 @@ public class JEIPlugin implements IModPlugin {
@Override @Override
public void onRuntimeAvailable(IJeiRuntime jeiRuntime) { public void onRuntimeAvailable(IJeiRuntime jeiRuntime) {
JEIFacade.setInstance(new JeiRuntimeAdapter(jeiRuntime)); JEIFacade.setInstance(new JeiRuntimeAdapter(jeiRuntime));
this.hideDebugTools(jeiRuntime);
}
private void hideDebugTools(IJeiRuntime jeiRuntime) {
Collection<ItemStack> toRemove = new ArrayList<>();
// We use the internal API here as exception as debug tools are not part of the
// public one by design.
toRemove.add(Api.INSTANCE.definitions().items().dummyFluidItem().maybeStack(1).orElse(null));
if (!AEConfig.instance().isFeatureEnabled(AEFeature.UNSUPPORTED_DEVELOPER_TOOLS)) {
toRemove.add(Api.INSTANCE.definitions().blocks().cubeGenerator().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().blocks().chunkLoader().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().blocks().energyGenerator().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().blocks().itemGen().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().blocks().phantomNode().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().items().toolDebugCard().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().items().toolEraser().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().items().toolMeteoritePlacer().maybeStack(1).orElse(null));
toRemove.add(Api.INSTANCE.definitions().items().toolReplicatorCard().maybeStack(1).orElse(null));
}
jeiRuntime.getIngredientManager().removeIngredientsAtRuntime(mezz.jei.api.constants.VanillaTypes.ITEM,
toRemove);
} }
} }