Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@
import com.gregtechceu.gtceu.api.data.RotationState;
import com.gregtechceu.gtceu.api.item.IGTTool;
import com.gregtechceu.gtceu.api.item.MetaMachineItem;
import com.gregtechceu.gtceu.api.item.tool.GTToolType;
import com.gregtechceu.gtceu.api.item.tool.ToolHelper;
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
import com.gregtechceu.gtceu.api.machine.MetaMachine;
import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition;
import com.gregtechceu.gtceu.api.machine.feature.*;
import com.gregtechceu.gtceu.api.machine.trait.feature.IInteractionTrait;
import com.gregtechceu.gtceu.api.sync_system.ManagedSyncBlockEntity;
import com.gregtechceu.gtceu.common.data.GTItems;
import com.gregtechceu.gtceu.common.machine.owner.MachineOwner;
Expand Down Expand Up @@ -56,7 +53,6 @@
import org.jetbrains.annotations.Nullable;

import java.util.List;
import java.util.Set;

import javax.annotation.ParametersAreNonnullByDefault;

Expand Down Expand Up @@ -223,12 +219,11 @@ public BlockState rotate(BlockState pState, Rotation pRotation) {

@Override
public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) {
BlockEntity tileEntity = builder.getOptionalParameter(LootContextParams.BLOCK_ENTITY);
var drops = super.getDrops(state, builder);
if (tileEntity instanceof MetaMachine machine) {
if (machine instanceof IMachineModifyDrops machineModifyDrops) {
machineModifyDrops.onDrops(drops);
}

BlockEntity be = builder.getOptionalParameter(LootContextParams.BLOCK_ENTITY);
if (be instanceof MetaMachine machine) {
machine.modifyDrops(drops);
if (machine instanceof IDropSaveMachine dropSaveMachine && dropSaveMachine.saveBreak()) {
for (ItemStack drop : drops) {
if (drop.getItem() instanceof MetaMachineItem item && item.getBlock() == this) {
Expand All @@ -248,7 +243,7 @@ public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState
if (!pState.is(pNewState.getBlock())) { // new block
MetaMachine machine = MetaMachine.getMachine(pLevel, pPos);
if (machine != null) {
machine.onRemoved();
machine.onMachineDestroyed();
}

pLevel.updateNeighbourForOutputSignal(pPos, this);
Expand Down Expand Up @@ -278,18 +273,8 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player
machine.setOwnerUUID(sPlayer.getUUID());
}

Set<GTToolType> types = ToolHelper.getToolTypes(itemStack);
if (!types.isEmpty() && ToolHelper.canUse(itemStack) || types.isEmpty() && player.isShiftKeyDown()) {
var result = machine.onToolClick(types, itemStack, new UseOnContext(player, hand, hit));
if (result.getSecond() == InteractionResult.CONSUME && player instanceof ServerPlayer serverPlayer) {
ToolHelper.playToolSound(result.getFirst(), serverPlayer);

if (!serverPlayer.isCreative()) {
ToolHelper.damageItem(itemStack, serverPlayer, 1);
}
}
if (result.getSecond() != InteractionResult.PASS) return result.getSecond();
}
InteractionResult machineInteractResult = machine.onUse(state, world, pos, player, hand, hit);
if (machineInteractResult != InteractionResult.PASS) return machineInteractResult;

if (itemStack.is(GTItems.PORTABLE_SCANNER.get())) {
return itemStack.getItem().use(world, player, hand).getResult();
Expand All @@ -299,17 +284,6 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player
shouldOpenUi = gtToolItem.definition$shouldOpenUIAfterUse(new UseOnContext(player, hand, hit));
}

for (var trait : machine.getTraitHolder().getAllTraits()) {
if (trait instanceof IInteractionTrait interactionTrait) {
InteractionResult result = interactionTrait.onUse(state, world, pos, player, hand, hit);
if (result != InteractionResult.PASS) return result;
}
}

if (machine instanceof IInteractedMachine interactedMachine) {
var result = interactedMachine.onUse(state, world, pos, player, hand, hit);
if (result != InteractionResult.PASS) return result;
}
if (shouldOpenUi && machine instanceof IUIMachine uiMachine &&
MachineOwner.canOpenOwnerMachine(player, machine)) {
return uiMachine.tryToOpenUI(player, hand, hit);
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

12 changes: 1 addition & 11 deletions src/main/java/com/gregtechceu/gtceu/api/capability/IMiner.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,8 @@
package com.gregtechceu.gtceu.api.capability;

import com.gregtechceu.gtceu.api.machine.feature.IMachineLife;
import com.gregtechceu.gtceu.api.machine.feature.IRecipeLogicMachine;
import com.gregtechceu.gtceu.common.machine.trait.miner.MinerLogic;

public interface IMiner extends IRecipeLogicMachine, IMachineLife {

@Override
MinerLogic getRecipeLogic();

@Override
default void onMachineRemoved() {
getRecipeLogic().onRemove();
}
public interface IMiner extends IRecipeLogicMachine {

boolean drainInput(boolean simulate);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import com.gregtechceu.gtceu.api.data.RotationState;
import com.gregtechceu.gtceu.api.gui.editor.EditableMachineUI;
import com.gregtechceu.gtceu.api.item.MetaMachineItem;
import com.gregtechceu.gtceu.api.machine.feature.IRecipeLogicMachine;
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
import com.gregtechceu.gtceu.api.recipe.modifier.RecipeModifier;
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
Expand Down Expand Up @@ -74,22 +72,6 @@ public class MachineDefinition implements Supplier<MetaMachineBlock> {
@Getter
@Setter
private boolean alwaysTryModifyRecipe;
@NotNull
@Getter
@Setter
private BiPredicate<IRecipeLogicMachine, GTRecipe> beforeWorking = (machine, recipe) -> true;
@NotNull
@Getter
@Setter
private Predicate<IRecipeLogicMachine> onWorking = (machine) -> true;
@NotNull
@Getter
@Setter
private Consumer<IRecipeLogicMachine> onWaiting = (machine) -> {};
@NotNull
@Getter
@Setter
private Consumer<IRecipeLogicMachine> afterWorking = (machine) -> {};
@Getter
@Setter
private boolean regressWhenWaiting = true;
Expand Down
Loading
Loading