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:
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user