Skip to content

Commit

Permalink
bunch of Jade
Browse files Browse the repository at this point in the history
  • Loading branch information
Leclowndu93150 committed Sep 17, 2024
1 parent 43671a5 commit 8c87672
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.portingdeadmods.modjam.compat.jade;

import com.portingdeadmods.modjam.content.blockentities.CrateBlockEntity;
import com.portingdeadmods.modjam.data.MJDataComponents;
import com.portingdeadmods.modjam.registries.MJItems;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import snownee.jade.api.BlockAccessor;
import snownee.jade.api.IBlockComponentProvider;
import snownee.jade.api.ITooltip;
import snownee.jade.api.config.IPluginConfig;
import snownee.jade.api.ui.IElementHelper;

public enum CrateComponentProvider implements IBlockComponentProvider {
INSTANCE;


@Override
public void appendTooltip(ITooltip iTooltip, BlockAccessor blockAccessor, IPluginConfig iPluginConfig) {
if(blockAccessor.getBlockEntity() instanceof CrateBlockEntity blockEntity) {
if(!blockEntity.components().has(MJDataComponents.OPEN.get())) {
IElementHelper helper = IElementHelper.get();
iTooltip.append(helper.item(new ItemStack(MJItems.CROWBAR.get())));
iTooltip.add(Component.literal("Locked"));
}
}
}

@Override
public ResourceLocation getUid() {
return ResourceLocation.fromNamespaceAndPath("modjam", "crate");
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.portingdeadmods.modjam.compat.jade;

import com.portingdeadmods.modjam.content.blockentities.AquaticCatalystBlockEntity;
import com.portingdeadmods.modjam.content.blocks.AquaticCatalystBlock;
import com.portingdeadmods.modjam.content.blocks.LaserJunctionBlock;
import snownee.jade.api.IWailaClientRegistration;
import snownee.jade.api.IWailaCommonRegistration;
import snownee.jade.api.IWailaPlugin;
Expand All @@ -18,5 +18,7 @@ public void register(IWailaCommonRegistration registration) {
@Override
public void registerClient(IWailaClientRegistration registration) {
registration.registerBlockComponent(AquaticCatalystComponentProvider.INSTANCE, AquaticCatalystBlock.class);
registration.registerBlockComponent(LaserJunctionComponentProvider.INSTANCE, LaserJunctionBlock.class);

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.portingdeadmods.modjam.compat.jade;

import com.portingdeadmods.modjam.content.blockentities.LaserJunctionBlockEntity;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import snownee.jade.api.BlockAccessor;
import snownee.jade.api.IBlockComponentProvider;
import snownee.jade.api.ITooltip;
import snownee.jade.api.config.IPluginConfig;

public enum LaserJunctionComponentProvider implements IBlockComponentProvider {
INSTANCE;
@Override
public void appendTooltip(ITooltip iTooltip, BlockAccessor blockAccessor, IPluginConfig iPluginConfig) {
if (blockAccessor.getBlockEntity() instanceof LaserJunctionBlockEntity blockEntity) {
String inputDirections = blockEntity.getLaserInputsAsString();
iTooltip.add(Component.literal("Inputs: " + inputDirections));
String outputDirections = blockEntity.getLaserOutputsAsString();
iTooltip.add(Component.literal("Outputs: " + outputDirections));
}
}

@Override
public ResourceLocation getUid() {
return ResourceLocation.fromNamespaceAndPath("modjam", "laser_junction");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

import java.util.Map;

import static org.codehaus.plexus.util.StringUtils.capitalizeFirstLetter;

public class LaserJunctionBlockEntity extends LaserBlockEntity {
public LaserJunctionBlockEntity(BlockPos blockPos, BlockState blockState) {
super(MJBlockEntityTypes.LASER_JUNCTION.get(), blockPos, blockState);
Expand All @@ -26,11 +28,37 @@ public ObjectSet<Direction> getLaserInputs() {
return getConnections(LaserJunctionBlock.ConnectionType.INPUT);
}

public String getLaserInputsAsString() {
ObjectSet<Direction> inputs = getLaserInputs();
if (inputs.isEmpty()) {
return "No inputs";
}

// Join the direction names into a readable string with first letter capitalized
return inputs.stream()
.map(direction -> capitalizeFirstLetter(direction.getName()))
.reduce((a, b) -> a + ", " + b)
.orElse("");
}
@Override
public ObjectSet<Direction> getLaserOutputs() {
return getConnections(LaserJunctionBlock.ConnectionType.OUTPUT);
}

public String getLaserOutputsAsString() {
ObjectSet<Direction> outputs = getLaserOutputs();
if (outputs.isEmpty()) {
return "No outputs";
}

// Join the direction names into a readable string with first letter capitalized
return outputs.stream()
.map(direction -> capitalizeFirstLetter(direction.getName()))
.reduce((a, b) -> a + ", " + b)
.orElse("");
}


// TODO: Cache this
private ObjectSet<Direction> getConnections(LaserJunctionBlock.ConnectionType type) {
ObjectSet<Direction> connections = new ObjectArraySet<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.portingdeadmods.modjam.mixin;

import com.portingdeadmods.modjam.content.blockentities.AquaticCatalystBlockEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import snownee.jade.addon.universal.ItemStorageProvider;
import snownee.jade.api.Accessor;
import snownee.jade.api.ITooltip;
import snownee.jade.api.config.IPluginConfig;

@Mixin(ItemStorageProvider.class)
public class ItemStorageProviderMixin {
@Inject(method = "append", at = @At("HEAD"), cancellable = true)
private static void onAppend(ITooltip tooltip, Accessor<?> accessor, IPluginConfig config, CallbackInfo ci) {
if (accessor.getTarget() instanceof AquaticCatalystBlockEntity) {
ci.cancel();
}
}
}
1 change: 1 addition & 0 deletions src/main/resources/modjam.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"mixins": [
"BucketItemMixin",
"GrowingPlantHeadBlockMixin",
"ItemStorageProviderMixin",
"StructurePieceMixin"
],
"injectors": {
Expand Down

0 comments on commit 8c87672

Please sign in to comment.