Skip to content

Commit

Permalink
Merge pull request #237 from P3pp3rF1y/1.20.x-dev
Browse files Browse the repository at this point in the history
Release merge
  • Loading branch information
P3pp3rF1y authored Jul 9, 2023
2 parents 58b08a1 + 78f7dd6 commit 01ff304
Show file tree
Hide file tree
Showing 15 changed files with 491 additions and 54 deletions.
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ dependencies {
compileOnly fg.deobf("mezz.jei:jei-${jei_mc_version}:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${jei_mc_version}:${jei_version}")
compileOnly fg.deobf("curse.maven:rubidium-574856:${rubidium_cf_file_id}")
compileOnly fg.deobf("curse.maven:jade-324717:${jade_cf_file_id}")

//runtimeOnly fg.deobf("curse.maven:rubidium-574856:${rubidium_cf_file_id}")
/*
compileOnly fg.deobf("curse.maven:quark-243121:${quark_cf_file_id}")
Expand Down
3 changes: 2 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
minecraft_version=1.20.1
forge_version=47.0.16
mod_version=0.8.37
mod_version=0.8.40
jei_mc_version=1.20.1-forge
jei_version=15.1.0.19
rubidium_cf_file_id=4573226
quark_cf_file_id=4463411
autoreglib_cf_file_id=4100299
jade_cf_file_id=4614153
sc_version=1.20.1-0.5.78.+
parchment_version=1.19.3-2023.03.12-1.20
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,11 @@ public class ChestBlock extends WoodStorageBlockBase implements SimpleWaterlogge
protected static final VoxelShape AABB = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 14.0D, 15.0D);

public ChestBlock(Supplier<Integer> numberOfInventorySlotsSupplier, Supplier<Integer> numberOfUpgradeSlotsSupplier) {
super(Properties.of().mapColor(MapColor.WOOD).strength(2.5F).sound(SoundType.WOOD), numberOfInventorySlotsSupplier, numberOfUpgradeSlotsSupplier);
this(numberOfInventorySlotsSupplier, numberOfUpgradeSlotsSupplier, 2.5F);
}

public ChestBlock(Supplier<Integer> numberOfInventorySlotsSupplier, Supplier<Integer> numberOfUpgradeSlotsSupplier, float explosionResistance) {
super(Properties.of().mapColor(MapColor.WOOD).strength(2.5F, explosionResistance).sound(SoundType.WOOD), numberOfInventorySlotsSupplier, numberOfUpgradeSlotsSupplier);
registerDefaultState(stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(WATERLOGGED, false).setValue(TICKING, false));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.material.MapColor;
import net.minecraft.world.level.material.PushReaction;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
Expand Down Expand Up @@ -68,10 +67,14 @@ public class ShulkerBoxBlock extends StorageBlockBase implements IAdditionalDrop
private static final VoxelShape ITEM_ENTITY_COLLISION_SHAPE = box(0.05, 0.05, 0.05, 15.95, 15.95, 15.95);

public ShulkerBoxBlock(Supplier<Integer> numberOfInventorySlotsSupplier, Supplier<Integer> numberOfUpgradeSlotsSupplier) {
super(getProperties().mapColor(MapColor.COLOR_PURPLE), numberOfInventorySlotsSupplier, numberOfUpgradeSlotsSupplier);
this(numberOfInventorySlotsSupplier, numberOfUpgradeSlotsSupplier, 2.0F);
}

private static Properties getProperties() {
public ShulkerBoxBlock(Supplier<Integer> numberOfInventorySlotsSupplier, Supplier<Integer> numberOfUpgradeSlotsSupplier, float explosionResistance) {
super(getProperties(explosionResistance), numberOfInventorySlotsSupplier, numberOfUpgradeSlotsSupplier);
}

private static Properties getProperties(float explosionResistance) {
BlockBehaviour.StatePredicate statePredicate = (state, blockGetter, pos) -> {
BlockEntity blockentity = blockGetter.getBlockEntity(pos);
if (!(blockentity instanceof ShulkerBoxBlockEntity shulkerboxblockentity)) {
Expand All @@ -80,7 +83,7 @@ private static Properties getProperties() {
return shulkerboxblockentity.isClosed();
}
};
return BlockBehaviour.Properties.of().strength(2.0F).dynamicShape().noOcclusion().isSuffocating(statePredicate).isViewBlocking(statePredicate).pushReaction(PushReaction.DESTROY);
return BlockBehaviour.Properties.of().strength(2.0F, explosionResistance).dynamicShape().noOcclusion().isSuffocating(statePredicate).isViewBlocking(statePredicate).pushReaction(PushReaction.DESTROY).mapColor(DyeColor.PURPLE);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
import java.util.function.Supplier;

public abstract class StorageBlockEntity extends BlockEntity implements IControllableStorage, ILinkable, ILockable, Nameable, ITierDisplay, IUpgradeDisplay {
public static final String STORAGE_WRAPPER_TAG = "storageWrapper";
Expand Down Expand Up @@ -136,7 +137,7 @@ protected boolean emptyInventorySlotsAcceptItems() {
public ITrackedContentsItemHandler getInventoryForInputOutput() {
if (locked && allowsEmptySlotsMatchingItemInsertsWhenLocked()) {
if (contentsFilteredItemHandler == null) {
contentsFilteredItemHandler = new ContentsFilteredItemHandler(super.getInventoryForInputOutput(), storageWrapper.getInventoryHandler().getSlotTracker());
contentsFilteredItemHandler = new ContentsFilteredItemHandler(super.getInventoryForInputOutput(), storageWrapper.getInventoryHandler().getSlotTracker(), () -> getStorageWrapper().getSettingsHandler().getTypeCategory(MemorySettingsCategory.class));
}
return contentsFilteredItemHandler;
}
Expand Down Expand Up @@ -589,10 +590,12 @@ private static class ContentsFilteredItemHandler implements ITrackedContentsItem

private final ITrackedContentsItemHandler itemHandler;
private ISlotTracker slotTracker;
private final Supplier<MemorySettingsCategory> memorySettingsGetter;

private ContentsFilteredItemHandler(ITrackedContentsItemHandler itemHandler, ISlotTracker slotTracker) {
private ContentsFilteredItemHandler(ITrackedContentsItemHandler itemHandler, ISlotTracker slotTracker, Supplier<MemorySettingsCategory> memorySettingsGetter) {
this.itemHandler = itemHandler;
this.slotTracker = slotTracker;
this.memorySettingsGetter = memorySettingsGetter;
}

@Override
Expand Down Expand Up @@ -632,7 +635,7 @@ public boolean isItemValid(int slot, @Nonnull ItemStack stack) {
}

private boolean matchesContents(ItemStack stack) {
return slotTracker.getItems().contains(stack.getItem());
return slotTracker.getItems().contains(stack.getItem()) || memorySettingsGetter.get().matchesFilter(stack);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package net.p3pp3rf1y.sophisticatedstorage.compat.jade;

import net.minecraft.world.level.block.Block;
import net.p3pp3rf1y.sophisticatedstorage.block.WoodStorageBlockBase;
import net.p3pp3rf1y.sophisticatedstorage.init.ModBlocks;
import snownee.jade.api.IWailaClientRegistration;
import snownee.jade.api.IWailaPlugin;
import snownee.jade.api.WailaPlugin;

@SuppressWarnings("unused") //used by Jade's reflection
@WailaPlugin
public class StorageJadePlugin implements IWailaPlugin {
@Override
public void registerClient(IWailaClientRegistration registration) {
ModBlocks.BLOCKS.getEntries().forEach(registeredBlock -> {
Block block = registeredBlock.get();
if (block instanceof WoodStorageBlockBase) {
registration.usePickedResult(block);
}
});
}
}
Loading

0 comments on commit 01ff304

Please sign in to comment.