Skip to content

Commit 184e530

Browse files
committed
feat: Add Quick-Teleport keybind
1 parent e1b149d commit 184e530

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

src/main/java/dev/tonimatas/mekanismcurios/networking/OpenPortableQIOPacket.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import dev.tonimatas.mekanismcurios.MekanismCurios;
44
import dev.tonimatas.mekanismcurios.bridge.PlayerBridge;
55
import dev.tonimatas.mekanismcurios.util.CuriosSlots;
6-
import mekanism.common.item.ItemPortableTeleporter;
76
import mekanism.common.item.interfaces.IGuiItem;
87
import mekanism.common.lib.security.ItemSecurityUtils;
98
import net.minecraft.network.FriendlyByteBuf;

src/main/java/dev/tonimatas/mekanismcurios/networking/QuickTeleportActionPacket.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
import mekanism.common.tile.TileEntityTeleporter;
1818
import mekanism.common.util.StorageUtils;
1919
import mekanism.common.util.WorldUtils;
20+
import net.minecraft.ChatFormatting;
2021
import net.minecraft.core.BlockPos;
2122
import net.minecraft.core.GlobalPos;
2223
import net.minecraft.core.component.DataComponentType;
2324
import net.minecraft.network.FriendlyByteBuf;
25+
import net.minecraft.network.chat.Component;
2426
import net.minecraft.network.codec.StreamCodec;
2527
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
2628
import net.minecraft.resources.ResourceLocation;
@@ -57,6 +59,7 @@ public static void handle(final QuickTeleportActionPacket packet, final IPayload
5759
Frequency.FrequencyIdentity identity = getIdentity(item, stack);
5860

5961
if (identity == null) {
62+
player.sendSystemMessage(Component.translatable("key.mekanismcurios.quickteleport.notconnected").withStyle(ChatFormatting.RED));
6063
return;
6164
}
6265

@@ -76,6 +79,7 @@ public static void handle(final QuickTeleportActionPacket packet, final IPayload
7679
energyCost = TileEntityTeleporter.calculateEnergyCost(player, teleWorld, coords);
7780
IEnergyContainer energyContainer = StorageUtils.getEnergyContainer(stack, 0);
7881
if (energyContainer == null || energyContainer.extract(energyCost, Action.SIMULATE, AutomationType.MANUAL) < energyCost) {
82+
player.sendSystemMessage(Component.translatable("key.mekanismcurios.quickteleport.noenergy").withStyle(ChatFormatting.RED));
7983
return;
8084
}
8185
energyExtraction = () -> energyContainer.extract(energyCost, Action.EXECUTE, AutomationType.MANUAL);
@@ -115,24 +119,28 @@ public static void handle(final QuickTeleportActionPacket packet, final IPayload
115119
} catch (Exception ignored) {
116120
}
117121
}
122+
} else {
123+
player.sendSystemMessage(Component.translatable("key.mekanismcurios.quickteleport.notfound").withStyle(ChatFormatting.RED));
118124
}
125+
} else {
126+
player.sendSystemMessage(Component.translatable("key.mekanismcurios.quickteleport.empty").withStyle(ChatFormatting.RED));
119127
}
120128
});
121129
}
122130

123131
private static Frequency.FrequencyIdentity getIdentity(ItemPortableTeleporter teleporter, ItemStack stack) {
124132
DataComponentType<? extends FrequencyAware<?>> frequencyComponent = MekanismDataComponents.getFrequencyComponent(teleporter.getFrequencyType());
133+
125134
if (frequencyComponent == null) {
126135
return null;
127136
}
137+
128138
FrequencyAware<?> frequencyAware = stack.get(frequencyComponent);
139+
129140
if (frequencyAware != null) {
130-
Frequency.FrequencyIdentity identity = frequencyAware.identity().orElse(null);
131-
if (identity != null) {
132-
return identity;
133-
}
141+
return frequencyAware.identity().orElse(null);
134142
}
135-
143+
136144
return null;
137145
}
138146
}

src/main/resources/assets/mekanismcurios/lang/en_us.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"key.mekanismcurios.protableqio": "Open Portable QIO",
44
"key.mekanismcurios.portableteleporter": "Open Portable Teleporter",
55
"key.mekanismcurios.quickteleport": "Quick-Teleport",
6+
"key.mekanismcurios.quickteleport.notconnected": "Portable Teleporter not linked.",
7+
"key.mekanismcurios.quickteleport.empty": "You don't have any Portable Teleporter in your curios.",
8+
"key.mekanismcurios.quickteleport.noenergy": "Your Portable Teleporter is out of energy.",
9+
"key.mekanismcurios.quickteleport.notfound": "Teleporter not found in this frequency.",
610
"curios.identifier.qio": "QIO",
711
"curios.identifier.teleporter": "Teleporter"
812
}

0 commit comments

Comments
 (0)