Skip to content

Commit 55880e0

Browse files
committed
refactor: gps satellite with antenna and optimize raycast detection
1 parent e67331a commit 55880e0

46 files changed

Lines changed: 470 additions & 501 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
{
22
"variants": {
3-
"": {
4-
"model": "aeronauticsextra:block/gps_satellite"
3+
"antenna=false,facing=down": {
4+
"model": "aeronauticsextra:block/gps_satellite/block",
5+
"x": 180
6+
},
7+
"antenna=false,facing=up": {
8+
"model": "aeronauticsextra:block/gps_satellite/block"
9+
},
10+
"antenna=true,facing=down": {
11+
"model": "aeronauticsextra:block/gps_satellite/block",
12+
"x": 180
13+
},
14+
"antenna=true,facing=up": {
15+
"model": "aeronauticsextra:block/gps_satellite/block"
516
}
617
}
718
}

src/generated/resources/assets/aeronauticsextra/models/block/gps_satellite.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/generated/resources/assets/aeronauticsextra/models/item/andesite_gps_core.json renamed to src/generated/resources/assets/aeronauticsextra/models/item/andesite_antenna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"parent": "minecraft:item/generated",
33
"textures": {
4-
"layer0": "aeronauticsextra:item/andesite_gps_core"
4+
"layer0": "aeronauticsextra:item/andesite_antenna"
55
}
66
}

src/generated/resources/assets/aeronauticsextra/models/item/brass_gps_core.json renamed to src/generated/resources/assets/aeronauticsextra/models/item/brass_antenna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"parent": "minecraft:item/generated",
33
"textures": {
4-
"layer0": "aeronauticsextra:item/brass_gps_core"
4+
"layer0": "aeronauticsextra:item/brass_antenna"
55
}
66
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"parent": "aeronauticsextra:block/gps_satellite"
2+
"parent": "aeronauticsextra:block/gps_satellite/block"
33
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"values": [
3+
"aeronauticsextra:andesite_antenna",
4+
"aeronauticsextra:brass_antenna"
5+
]
6+
}

src/generated/resources/data/aeronauticsextra/tags/item/gps_core.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/main/java/com/github/winexp/aeronauticsextra/AeronauticsExtra.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package com.github.winexp.aeronauticsextra;
22

3-
import com.github.winexp.aeronauticsextra.neoforge.AeroExtraModBusEventHandler;
4-
import com.github.winexp.aeronauticsextra.neoforge.AeroExtraNeoForgeEventHandler;
53
import com.github.winexp.aeronauticsextra.registry.*;
64
import com.mojang.logging.LogUtils;
75
import net.minecraft.resources.ResourceLocation;
86
import net.neoforged.bus.api.IEventBus;
97
import net.neoforged.fml.ModContainer;
108
import net.neoforged.fml.common.Mod;
11-
import net.neoforged.neoforge.common.NeoForge;
129
import org.slf4j.Logger;
1310

1411
@Mod(AeronauticsExtra.MOD_ID)
@@ -23,9 +20,6 @@ public AeronauticsExtra(IEventBus modEventBus, ModContainer modContainer) {
2320
AeroExtraItems.register(modEventBus);
2421
AeroExtraCreativeTabs.register();
2522
AeroExtraMenuTypes.register(modEventBus);
26-
27-
NeoForge.EVENT_BUS.register(AeroExtraNeoForgeEventHandler.class);
28-
modEventBus.register(AeroExtraModBusEventHandler.class);
2923
}
3024

3125
public static ResourceLocation asResource(String path) {

src/main/java/com/github/winexp/aeronauticsextra/client/AeronauticsExtraClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
@Mod(value = AeronauticsExtra.MOD_ID, dist = Dist.CLIENT)
1010
public class AeronauticsExtraClient {
1111
public AeronauticsExtraClient(IEventBus modEventBus) {
12-
modEventBus.addListener(this::init);
12+
modEventBus.addListener(AeronauticsExtraClient::init);
1313
}
1414

15-
private void init(FMLClientSetupEvent event) {
15+
public static void init(FMLClientSetupEvent event) {
1616
AeroExtraPartialModels.init();
1717
}
1818
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.github.winexp.aeronauticsextra.client.events;
2+
3+
import com.github.winexp.aeronauticsextra.AeronauticsExtra;
4+
import com.github.winexp.aeronauticsextra.client.gui.GPSSatelliteConfigScreen;
5+
import com.github.winexp.aeronauticsextra.client.renderer.BlockOutlineRenderer;
6+
import com.github.winexp.aeronauticsextra.client.renderer.GPSSatelliteRenderer;
7+
import com.github.winexp.aeronauticsextra.registry.AeroExtraBlockEntityTypes;
8+
import com.github.winexp.aeronauticsextra.registry.AeroExtraMenuTypes;
9+
import com.mojang.blaze3d.vertex.PoseStack;
10+
import com.mojang.blaze3d.vertex.VertexConsumer;
11+
import net.minecraft.client.renderer.RenderType;
12+
import net.minecraft.core.BlockPos;
13+
import net.minecraft.world.level.Level;
14+
import net.minecraft.world.level.block.Block;
15+
import net.minecraft.world.level.block.state.BlockState;
16+
import net.minecraft.world.phys.Vec3;
17+
import net.neoforged.api.distmarker.Dist;
18+
import net.neoforged.bus.api.SubscribeEvent;
19+
import net.neoforged.fml.common.EventBusSubscriber;
20+
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
21+
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
22+
import net.neoforged.neoforge.client.event.RenderHighlightEvent;
23+
24+
@EventBusSubscriber(value = Dist.CLIENT, modid = AeronauticsExtra.MOD_ID)
25+
public class ClientEvents {
26+
@SubscribeEvent
27+
public static void registerBlockEntityRenderers(EntityRenderersEvent.RegisterRenderers event) {
28+
event.registerBlockEntityRenderer(AeroExtraBlockEntityTypes.GPS_SATELLITE.get(), GPSSatelliteRenderer::new);
29+
}
30+
31+
@SubscribeEvent
32+
public static void registerScreens(RegisterMenuScreensEvent event) {
33+
event.register(AeroExtraMenuTypes.GPS_SATELLITE_CONFIG.get(), GPSSatelliteConfigScreen::new);
34+
}
35+
36+
37+
38+
@SubscribeEvent
39+
public static void onRenderBlockHighlight(RenderHighlightEvent.Block event) {
40+
Level level = event.getLevelRenderer().level;
41+
BlockPos blockPos = event.getTarget().getBlockPos();
42+
BlockState blockState = level.getBlockState(blockPos);
43+
Block block = blockState.getBlock();
44+
Vec3 hitPos = event.getTarget().getLocation();
45+
if (block instanceof BlockOutlineRenderer renderer) {
46+
PoseStack poseStack = event.getPoseStack();
47+
VertexConsumer consumer = event.getMultiBufferSource().getBuffer(RenderType.lines());
48+
event.setCanceled(renderer.renderHighlight(poseStack, consumer, event.getCamera(), level, blockState, blockPos, hitPos));
49+
}
50+
}
51+
}

0 commit comments

Comments
 (0)