Skip to content

Commit 250d929

Browse files
committed
Add isPickable
1 parent b39920b commit 250d929

File tree

8 files changed

+39
-26
lines changed

8 files changed

+39
-26
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
33
loom.platform = neoforge
44

55
# Mod properties
6-
mod_version = 0.1.6
6+
mod_version = 0.1.7
77
maven_group = cn.zbx1425
88
archives_name = project_me
99

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package cn.zbx1425.projectme;
2+
3+
public class ClientConfig {
4+
5+
public static boolean isProjectionEntityEnabled = true;
6+
}

src/main/java/cn/zbx1425/projectme/client/ProjectMeClient.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.zbx1425.projectme.client;
22

3+
import cn.zbx1425.projectme.ClientConfig;
34
import cn.zbx1425.projectme.ProjectMe;
45
import cn.zbx1425.projectme.entity.EntityProjection;
56
import cn.zbx1425.projectme.entity.EntityProjectionRenderer;
@@ -25,11 +26,11 @@ public ProjectMeClient(IEventBus eventBus) {
2526
eventBus.register(ModEventBusListener.class);
2627
}
2728

28-
private static UUID peTargetUUID;
29-
private static long peFirstInteractTime = -1;
30-
3129
public static class ForgeEventBusListener {
3230

31+
private static UUID peTargetUUID;
32+
private static long peFirstInteractTime = -1;
33+
3334
@SubscribeEvent
3435
public static void onPlayerInteractEntity(PlayerInteractEvent.EntityInteractSpecific event) {
3536
if (!event.getEntity().level().isClientSide()) return;
@@ -63,30 +64,30 @@ public static void onAttackEntity(AttackEntityEvent event) {
6364

6465
@SubscribeEvent
6566
public static void registerCommands(RegisterClientCommandsEvent event) {
66-
event.getDispatcher().register(Commands.literal("projectme").then(
67-
Commands.literal("render").then(
68-
Commands.literal("switch").executes(c -> {
69-
EntityProjectionRenderer.enabled = !EntityProjectionRenderer.enabled;
70-
71-
c.getSource().sendSuccess(() -> Component.translatable("project_me.renderer.switch"), true);
72-
return Command.SINGLE_SUCCESS;
73-
})
74-
).then(
67+
event.getDispatcher().register(Commands.literal("pme").then(
68+
Commands.literal("projection").then(
7569
Commands.literal("enable").executes(c -> {
76-
EntityProjectionRenderer.enabled = true;
70+
ClientConfig.isProjectionEntityEnabled = true;
7771

78-
c.getSource().sendSuccess(() -> Component.translatable("project_me.renderer.enabled"), true);
72+
c.getSource().sendSuccess(() -> Component.translatable("project_me.projection.enabled"), true);
7973
return Command.SINGLE_SUCCESS;
8074
})
8175
).then(
8276
Commands.literal("disable").executes(c -> {
83-
EntityProjectionRenderer.enabled = false;
77+
ClientConfig.isProjectionEntityEnabled = false;
8478

85-
c.getSource().sendSuccess(() -> Component.translatable("project_me.renderer.disabled"), true);
79+
c.getSource().sendSuccess(() -> Component.translatable("project_me.projection.disabled"), true);
8680
return Command.SINGLE_SUCCESS;
8781
})
8882
)
89-
));
83+
).executes(c -> {
84+
ClientConfig.isProjectionEntityEnabled = !ClientConfig.isProjectionEntityEnabled;
85+
86+
c.getSource().sendSuccess(() -> ClientConfig.isProjectionEntityEnabled
87+
? Component.translatable("project_me.projection.enabled")
88+
: Component.translatable("project_me.projection.disabled"), true);
89+
return Command.SINGLE_SUCCESS;
90+
}));
9091
}
9192
}
9293

src/main/java/cn/zbx1425/projectme/client/ProjectMeJadePlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.zbx1425.projectme.client;
22

3+
import cn.zbx1425.projectme.ClientConfig;
34
import cn.zbx1425.projectme.ProjectMe;
45
import cn.zbx1425.projectme.entity.EntityProjection;
56
import net.minecraft.network.chat.Component;
@@ -16,6 +17,7 @@ public void registerClient(IWailaClientRegistration registration) {
1617
registration.registerEntityComponent(new IComponentProvider<>() {
1718
@Override
1819
public void appendTooltip(ITooltip tooltip, EntityAccessor entity, IPluginConfig iPluginConfig) {
20+
if (!ClientConfig.isProjectionEntityEnabled) return;
1921
tooltip.add(Component.translatable("project_me.projection_entity.tooltip"));
2022
}
2123

src/main/java/cn/zbx1425/projectme/entity/EntityProjection.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.zbx1425.projectme.entity;
22

3+
import cn.zbx1425.projectme.ClientConfig;
34
import cn.zbx1425.projectme.ProjectMe;
45
import com.mojang.authlib.GameProfile;
56
import net.minecraft.Util;
@@ -77,6 +78,11 @@ public boolean isInvulnerableTo(DamageSource arg) {
7778
return true;
7879
}
7980

81+
@Override
82+
public boolean isPickable() {
83+
return ClientConfig.isProjectionEntityEnabled && super.isPickable();
84+
}
85+
8086
@Override
8187
public Iterable<ItemStack> getArmorSlots() {
8288
return List.of();

src/main/java/cn/zbx1425/projectme/entity/EntityProjectionRenderer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.zbx1425.projectme.entity;
22

3+
import cn.zbx1425.projectme.ClientConfig;
34
import com.mojang.authlib.GameProfile;
45
import com.mojang.blaze3d.vertex.PoseStack;
56
import net.minecraft.client.Minecraft;
@@ -17,7 +18,6 @@
1718
import java.util.Optional;
1819

1920
public class EntityProjectionRenderer extends LivingEntityRenderer<EntityProjection, PlayerModel<EntityProjection>> {
20-
public static boolean enabled = true;
2121

2222
private final PlayerModel<EntityProjection> slimModel;
2323
private final PlayerModel<EntityProjection> wideModel;
@@ -40,7 +40,7 @@ public ResourceLocation getTextureLocation(EntityProjection entity) {
4040

4141
@Override
4242
public void render(EntityProjection entity, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource buffer, int packedLight) {
43-
if (!enabled) {
43+
if (!ClientConfig.isProjectionEntityEnabled) {
4444
return;
4545
}
4646

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"project_me.projection_entity.tooltip": "Player in another sub-server",
33
"project_me.projection_entity.goto": "Double right-click to go to their sub-server, and you can interact with them.",
4-
"project_me.renderer.switch": "Projection Renderer has been disabled. Execute this command again to re-enable this feature.",
5-
"project_me.renderer.disabled": "Projection Renderer has been disabled. Execute '/projectme renderer enable' to enable this feature.",
6-
"project_me.renderer.enabled": "Projection Renderer has been enabled."
4+
"project_me.projection.disabled": "Player Projection has been disabled. Execute '/pme' to enable this feature.",
5+
"project_me.projection.enabled": "Player Projection has been enabled."
76
}
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"project_me.projection_entity.tooltip": "其他分服务器的玩家",
33
"project_me.projection_entity.goto": "双击右键前往对方所在的分服务器,以便与其交互",
4-
"project_me.renderer.switch": "已不再渲染其他分服务器的玩家,再运行一次本命令以启用。",
5-
"project_me.renderer.disabled": "已不再渲染其他分服务器的玩家,运行 /projectme renderer enable 来重新启用",
6-
"project_me.renderer.enabled": "已启用渲染其他分服务器的玩家"
4+
"project_me.projection.disabled": "已不再显示其他分服务器的玩家,运行 /pme 来重新启用",
5+
"project_me.projection.enabled": "已启用显示其他分服务器的玩家"
76
}

0 commit comments

Comments
 (0)