-
Notifications
You must be signed in to change notification settings - Fork 130
Rework travel api to be POI instead #1173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev/1.21.1
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| package com.enderio.enderio.api.poi; | ||
|
|
||
| import com.enderio.enderio.api.EnderIORegistries; | ||
| import com.mojang.serialization.Codec; | ||
| import net.minecraft.core.BlockPos; | ||
| import net.minecraft.network.RegistryFriendlyByteBuf; | ||
| import net.minecraft.network.codec.ByteBufCodecs; | ||
| import net.minecraft.network.codec.StreamCodec; | ||
| import net.minecraft.world.entity.player.Player; | ||
| import net.minecraft.world.level.Level; | ||
|
|
||
| public interface EnderPOI { | ||
| Codec<EnderPOI> CODEC = EnderIORegistries.TRAVEL_TARGET_SERIALIZERS.byNameCodec() | ||
| .dispatch(EnderPOI::serializer, EnderPOISerializer::codec); | ||
| StreamCodec<RegistryFriendlyByteBuf, EnderPOI> STREAM_CODEC = ByteBufCodecs | ||
| .registry(EnderIORegistries.Keys.TRAVEL_TARGET_SERIALIZERS) | ||
| .dispatch(EnderPOI::serializer, EnderPOISerializer::streamCodec); | ||
|
Comment on lines
+13
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Registry naming inconsistency with EnderPOI refactor. The codecs reference 🤖 Prompt for AI Agents |
||
|
|
||
| BlockPos pos(); | ||
|
|
||
| int item2BlockRange(); | ||
|
|
||
| int block2BlockRange(); | ||
|
|
||
| boolean isActive(); | ||
|
|
||
| boolean onActivation(Level level, Player player); | ||
|
|
||
| EnderPOIType<?> type(); | ||
|
|
||
| EnderPOISerializer<?> serializer(); | ||
| } | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,19 @@ | ||||||
| package com.enderio.enderio.api.poi; | ||||||
|
|
||||||
| import net.minecraft.core.BlockPos; | ||||||
| import net.minecraft.world.level.Level; | ||||||
|
|
||||||
| import java.util.Collection; | ||||||
| import java.util.Optional; | ||||||
| import java.util.ServiceLoader; | ||||||
| import java.util.stream.Stream; | ||||||
|
|
||||||
| public interface EnderPOIApi { | ||||||
| EnderPOIApi INSTANCE = ServiceLoader.load(EnderPOIApi.class).findFirst().orElseThrow(); | ||||||
|
|
||||||
| Optional<EnderPOI> get(Level level, BlockPos pos); | ||||||
| <T extends EnderPOI> void set(Level level, T travelTarget); | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update parameter name to match type. The parameter is named Apply this diff: - <T extends EnderPOI> void set(Level level, T travelTarget);
+ <T extends EnderPOI> void set(Level level, T enderPOI);📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
| void removeAt(Level level, BlockPos pos); | ||||||
| Collection<EnderPOI> getAll(Level level); | ||||||
| Stream<EnderPOI> getInItemRange(Level level, BlockPos center); | ||||||
| } | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,10 +1,10 @@ | ||
| package com.enderio.enderio.api.travel; | ||
| package com.enderio.enderio.api.poi; | ||
|
|
||
| import com.mojang.serialization.MapCodec; | ||
| import net.minecraft.network.RegistryFriendlyByteBuf; | ||
| import net.minecraft.network.codec.StreamCodec; | ||
|
|
||
| public interface TravelTargetSerializer<T extends TravelTarget> { | ||
| public interface EnderPOISerializer <T extends EnderPOI> { | ||
| MapCodec<T> codec(); | ||
| StreamCodec<RegistryFriendlyByteBuf, T> streamCodec(); | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| package com.enderio.enderio.api.poi; | ||
|
|
||
| import net.minecraft.resources.ResourceLocation; | ||
|
|
||
| public interface EnderPOIType<T extends EnderPOI> { | ||
| static <T extends EnderPOI> EnderPOIType<T> simple(final ResourceLocation name) { | ||
| final String toString = name.toString(); | ||
| return new EnderPOIType<>() { | ||
| @Override | ||
| public String toString() { | ||
| return toString; | ||
| } | ||
| }; | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| package com.enderio.enderio.api.poi; | ||
|
|
||
| import com.mojang.blaze3d.vertex.PoseStack; | ||
| import net.minecraft.client.renderer.LevelRenderer; | ||
|
|
||
| public interface POIRenderer<T extends EnderPOI> { | ||
| void render(T pOIData, LevelRenderer levelRenderer, PoseStack poseStack, double distanceSquared, boolean active, float partialTick); | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| package com.enderio.enderio.api.poi; | ||
|
|
||
| import net.neoforged.bus.api.Event; | ||
| import net.neoforged.fml.event.IModBusEvent; | ||
|
|
||
| import java.util.Map; | ||
| import java.util.concurrent.ConcurrentHashMap; | ||
|
|
||
| public class RegisterEnderPOIRenderersEvent extends Event implements IModBusEvent { | ||
|
|
||
| public interface TravelRendererFactory<T extends EnderPOI> { | ||
| POIRenderer<T> createRenderer(); | ||
| } | ||
|
|
||
| private final Map<EnderPOIType<?>, TravelRendererFactory<?>> renderers = new ConcurrentHashMap<>(); | ||
|
|
||
| public <T extends EnderPOI> void register(EnderPOIType<T> type, TravelRendererFactory<T> rendererFactory) { | ||
| renderers.put(type, rendererFactory); | ||
| } | ||
|
|
||
| public Map<EnderPOIType<?>, TravelRendererFactory<?>> getRenderers() { | ||
| return Map.copyOf(renderers); | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| @javax.annotation.ParametersAreNonnullByDefault | ||
| @net.minecraft.MethodsReturnNonnullByDefault | ||
|
|
||
| package com.enderio.enderio.api.travel; | ||
| package com.enderio.enderio.api.poi; |
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| @javax.annotation.ParametersAreNonnullByDefault | ||
| @net.minecraft.MethodsReturnNonnullByDefault | ||
|
|
||
| package com.enderio.enderio.client.content.enderface; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registry naming inconsistency with EnderPOI refactor.
The registry types have been correctly updated to
EnderPOIType<?>andEnderPOISerializer<?>, but the registry field names still use theTRAVEL_TARGETprefix. For consistency with the EnderPOI refactor, consider renaming:TRAVEL_TARGET_TYPES→ENDER_POI_TYPESTRAVEL_TARGET_SERIALIZERS→ENDER_POI_SERIALIZERSThe same applies to the registry key names in the
Keysclass (lines 44-45) and the string literals passed tocreateKey().🤖 Prompt for AI Agents