Skip to content

Commit

Permalink
Add jade compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
Edivad99 committed Mar 9, 2024
1 parent 232c514 commit ab66e81
Show file tree
Hide file tree
Showing 12 changed files with 178 additions and 14 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 {
transitive false
}*/
runtimeOnly fg.deobf("mezz.jei:jei-$minecraft_version-forge:$jei_version")
compileOnly fg.deobf("curse.maven:jade-api-324717:$jade_id_api")
runtimeOnly fg.deobf("curse.maven:jade-324717:$jade_id")
//implementation fg.deobf("curse.maven:mekanism-268560:4041164")
}

Expand Down
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ jei_version=15.2.0.27
top_version=1.20.1-10.0.1-3
rs_version=1.12.4
co_version=2.1.2.5
jade_id_api=5073670
jade_id=5072729
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// 1.20.1 2023-07-08T09:17:22.830812 Languages: en_us
64bba6aacec9acaa2c7e97496f411278e550c190 assets/extrastorage/lang/en_us.json
// 1.20.1 2024-03-09T12:05:34.129429 Languages: en_us
09dd8940d8cd5f68c94082b2e77506c5386adf8c assets/extrastorage/lang/en_us.json
2 changes: 2 additions & 0 deletions src/generated/resources/assets/extrastorage/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
"block.extrastorage.gold_crafter": "Gold Crafter",
"block.extrastorage.iron_crafter": "Iron Crafter",
"block.extrastorage.netherite_crafter": "Netherite Crafter",
"config.jade.plugin_extrastorage.advanced_crafter": "Enable custom visualization for Advanced Crafter",
"config.jade.plugin_extrastorage.crafter": "Enable custom visualization for Crafter",
"item.extrastorage.disk_1024k": "1024k Storage Disk",
"item.extrastorage.disk_1048576k_fluid": "1048576k Fluid Storage Disk",
"item.extrastorage.disk_16384k": "16384k Storage Disk",
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/edivad/extrastorage/ExtraStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import com.refinedmods.refinedstorage.apiimpl.network.node.NetworkNode;
import com.refinedmods.refinedstorage.blockentity.data.BlockEntitySynchronizationManager;
import edivad.extrastorage.blocks.CrafterTier;
import edivad.extrastorage.compat.TOPIntegration;
import edivad.extrastorage.compat.top.TOPIntegration;
import edivad.extrastorage.data.ExtraStorageBlockTagsProvider;
import edivad.extrastorage.data.ExtraStorageItemTagsProvider;
import edivad.extrastorage.data.ExtraStorageLanguageProvider;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package edivad.extrastorage.compat.jade;

import edivad.extrastorage.ExtraStorage;
import edivad.extrastorage.blockentity.AdvancedCrafterBlockEntity;
import edivad.extrastorage.tools.Translations;
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 class AdvancedCrafterComponent implements IBlockComponentProvider {

@Override
public void appendTooltip(ITooltip tooltip, BlockAccessor blockAccessor,
IPluginConfig iPluginConfig) {
if (blockAccessor.getBlockEntity() instanceof AdvancedCrafterBlockEntity) {
var data = blockAccessor.getServerData();
var patterns = data.getInt("patterns");
var speed = data.getInt("speed");
var slots = data.getInt("slots");
var tierSpeed = data.getInt("tierSpeed");
var nodeName = data.getString("node_name");

tooltip.add(Component.translatable(Translations.OCCUPIED_SPACE,
String.valueOf(patterns), String.valueOf(slots)));

if (tierSpeed != speed) {
tooltip.add(Component.translatable(Translations.LIMITED_SPEED, nodeName, String.valueOf(speed)));
} else {
tooltip.add(Component.translatable(Translations.CURRENT_SPEED, String.valueOf(speed)));
}
}
}

@Override
public ResourceLocation getUid() {
return ExtraStorage.rl("advanced_crafter");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package edivad.extrastorage.compat.jade;

import edivad.extrastorage.ExtraStorage;
import edivad.extrastorage.blockentity.AdvancedCrafterBlockEntity;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
import snownee.jade.api.BlockAccessor;
import snownee.jade.api.IServerDataProvider;

public class AdvancedCrafterProvider implements IServerDataProvider<BlockAccessor> {

@Override
public void appendServerData(CompoundTag tag, BlockAccessor blockAccessor) {
if (blockAccessor.getBlockEntity() instanceof AdvancedCrafterBlockEntity advancedCrafter) {
var node = advancedCrafter.getNode();
tag.putInt("patterns", node.getPatterns().size());
tag.putInt("speed", node.getMaximumSuccessfulCraftingUpdates());
tag.putInt("slots", advancedCrafter.getTier().getSlots());
tag.putInt("tier_speed", node.getTierSpeed());
tag.putString("node_name", node.getName().getString());
}
}

@Override
public ResourceLocation getUid() {
return ExtraStorage.rl("advanced_crafter");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package edivad.extrastorage.compat.jade;

import com.refinedmods.refinedstorage.blockentity.CrafterBlockEntity;
import edivad.extrastorage.ExtraStorage;
import edivad.extrastorage.tools.Translations;
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 class CrafterComponent implements IBlockComponentProvider {

@Override
public void appendTooltip(ITooltip tooltip, BlockAccessor blockAccessor,
IPluginConfig iPluginConfig) {
if (blockAccessor.getBlockEntity() instanceof CrafterBlockEntity) {
var data = blockAccessor.getServerData();
var patterns = data.getInt("patterns");
var speed = data.getInt("speed");
var slots = data.getInt("slots");

tooltip.add(Component.translatable(Translations.OCCUPIED_SPACE,
String.valueOf(patterns), String.valueOf(slots)));
tooltip.add(Component.translatable(Translations.CURRENT_SPEED, String.valueOf(speed)));
}
}

@Override
public ResourceLocation getUid() {
return ExtraStorage.rl("crafter");
}
}
26 changes: 26 additions & 0 deletions src/main/java/edivad/extrastorage/compat/jade/CrafterProvider.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package edivad.extrastorage.compat.jade;

import com.refinedmods.refinedstorage.blockentity.CrafterBlockEntity;
import edivad.extrastorage.ExtraStorage;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
import snownee.jade.api.BlockAccessor;
import snownee.jade.api.IServerDataProvider;

public class CrafterProvider implements IServerDataProvider<BlockAccessor> {

@Override
public void appendServerData(CompoundTag tag, BlockAccessor blockAccessor) {
if (blockAccessor.getBlockEntity() instanceof CrafterBlockEntity crafter) {
var node = crafter.getNode();
tag.putInt("patterns", node.getPatterns().size());
tag.putInt("speed", node.getMaximumSuccessfulCraftingUpdates());
tag.putInt("slots", 9);
}
}

@Override
public ResourceLocation getUid() {
return ExtraStorage.rl("crafter");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package edivad.extrastorage.compat.jade;

import com.refinedmods.refinedstorage.block.CrafterBlock;
import com.refinedmods.refinedstorage.blockentity.CrafterBlockEntity;
import edivad.extrastorage.ExtraStorage;
import edivad.extrastorage.blockentity.AdvancedCrafterBlockEntity;
import edivad.extrastorage.blocks.AdvancedCrafterBlock;
import snownee.jade.api.IWailaClientRegistration;
import snownee.jade.api.IWailaCommonRegistration;
import snownee.jade.api.IWailaPlugin;
import snownee.jade.api.WailaPlugin;

@WailaPlugin(ExtraStorage.ID)
public class JadeCompatibility implements IWailaPlugin {

@Override
public void register(IWailaCommonRegistration registration) {
registration.registerBlockDataProvider(new AdvancedCrafterProvider(), AdvancedCrafterBlockEntity.class);
registration.registerBlockDataProvider(new CrafterProvider(), CrafterBlockEntity.class);
}

@Override
public void registerClient(IWailaClientRegistration registration) {
registration.registerBlockComponent(new AdvancedCrafterComponent(), AdvancedCrafterBlock.class);
registration.registerBlockComponent(new CrafterComponent(), CrafterBlock.class);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package edivad.extrastorage.compat;
package edivad.extrastorage.compat.top;

import java.util.function.Function;
import com.refinedmods.refinedstorage.apiimpl.network.node.CrafterNetworkNode;
import com.refinedmods.refinedstorage.blockentity.CrafterBlockEntity;
import edivad.extrastorage.ExtraStorage;
import edivad.extrastorage.blockentity.AdvancedCrafterBlockEntity;
import edivad.extrastorage.nodes.AdvancedCrafterNetworkNode;
import edivad.extrastorage.tools.Translations;
import mcjty.theoneprobe.api.IProbeHitData;
import mcjty.theoneprobe.api.IProbeInfo;
Expand All @@ -16,7 +14,6 @@
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;

public class TOPIntegration implements IProbeInfoProvider, Function<ITheOneProbe, Void> {
Expand All @@ -30,28 +27,28 @@ public Void apply(ITheOneProbe probe) {
@Override
public void addProbeInfo(ProbeMode probeMode, IProbeInfo probeInfo, Player player, Level level,
BlockState blockState, IProbeHitData data) {
BlockEntity te = level.getBlockEntity(data.getPos());
var blockEntity = level.getBlockEntity(data.getPos());
int patterns, speed, slots;

if (te instanceof AdvancedCrafterBlockEntity tile) {
AdvancedCrafterNetworkNode node = tile.getNode();
if (blockEntity instanceof AdvancedCrafterBlockEntity advancedCrafter) {
var node = advancedCrafter.getNode();
patterns = node.getPatterns().size();
speed = node.getMaximumSuccessfulCraftingUpdates();
slots = tile.getTier().getSlots();
slots = advancedCrafter.getTier().getSlots();
probeInfo.horizontal().text(
Component.translatable(Translations.OCCUPIED_SPACE, String.valueOf(patterns),
String.valueOf(slots)));

if (node.getTierSpeed() != node.getMaximumSuccessfulCraftingUpdates()) {
if (node.getTierSpeed() != speed) {
probeInfo.horizontal().text(
Component.translatable(Translations.LIMITED_SPEED, node.getName().getString(),
String.valueOf(speed)));
} else {
probeInfo.horizontal()
.text(Component.translatable(Translations.CURRENT_SPEED, String.valueOf(speed)));
}
} else if (te instanceof CrafterBlockEntity tile) {
CrafterNetworkNode node = tile.getNode();
} else if (blockEntity instanceof CrafterBlockEntity crafter) {
var node = crafter.getNode();
patterns = node.getPatterns().size();
speed = node.getMaximumSuccessfulCraftingUpdates();
slots = 9;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,10 @@ protected void addTranslations() {
add(Translations.ADVANCED_EXPORTER.desc(), "A much larger exporter!");
add(Translations.ADVANCED_IMPORTER.title(), "Advanced Importer");
add(Translations.ADVANCED_IMPORTER.desc(), "Many more filters!");

add("config.jade.plugin_" + ExtraStorage.ID + ".advanced_crafter",
"Enable custom visualization for Advanced Crafter");
add("config.jade.plugin_" + ExtraStorage.ID + ".crafter",
"Enable custom visualization for Crafter");
}
}

0 comments on commit ab66e81

Please sign in to comment.