Skip to content

Commit 774d515

Browse files
committed
A feverdream to port 0.8 to 1.21.1 while maintaining feature parity with the existing 1.21.1 branch
There are no huge hurdles right now, but I need to migrate the rendering system to 1.21.1 which can take a while Also since valkyrien skies does not exist for 1.21.1, I needed to comment any relevant code for now
1 parent f63b4c0 commit 774d515

File tree

215 files changed

+5497
-4200
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

215 files changed

+5497
-4200
lines changed

src/main/java/de/srendi/advancedperipherals/APCreativeTab.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import net.minecraft.resources.ResourceLocation;
99
import net.minecraft.world.item.CreativeModeTab;
1010
import net.minecraft.world.item.ItemStack;
11-
import net.minecraftforge.registries.RegistryObject;
1211
import org.jetbrains.annotations.NotNull;
1312

1413
import java.util.Collection;
Lines changed: 76 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
package de.srendi.advancedperipherals;
22

3-
import de.srendi.advancedperipherals.common.addons.APAddons;
3+
import dan200.computercraft.api.peripheral.PeripheralCapability;
4+
import de.srendi.advancedperipherals.common.addons.APAddon;
45
import de.srendi.advancedperipherals.common.addons.ae2.AE2Registries;
6+
import de.srendi.advancedperipherals.common.addons.appliedenergistics.AEApi;
7+
import de.srendi.advancedperipherals.common.addons.computercraft.integrations.IntegrationPeripheralProvider;
8+
import de.srendi.advancedperipherals.common.addons.refinedstorage.RSApi;
9+
import de.srendi.advancedperipherals.common.blocks.base.ICapabilityProvider;
510
import de.srendi.advancedperipherals.common.configuration.APConfig;
611
import de.srendi.advancedperipherals.common.network.APNetworking;
712
import de.srendi.advancedperipherals.common.setup.APRegistration;
13+
import de.srendi.advancedperipherals.common.util.ChunkManager;
814
import de.srendi.advancedperipherals.common.village.VillageStructures;
915
import net.minecraft.resources.ResourceLocation;
10-
import net.minecraftforge.common.MinecraftForge;
11-
import net.minecraftforge.eventbus.api.IEventBus;
12-
import net.minecraftforge.fml.ModLoadingContext;
13-
import net.minecraftforge.fml.common.Mod;
14-
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
15-
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent;
16-
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
16+
import net.neoforged.bus.api.IEventBus;
17+
import net.neoforged.fml.ModLoadingContext;
18+
import net.neoforged.fml.common.Mod;
19+
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
20+
import net.neoforged.fml.event.lifecycle.FMLLoadCompleteEvent;
21+
import net.neoforged.neoforge.capabilities.Capabilities;
22+
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
1723
import org.apache.logging.log4j.Level;
1824
import org.apache.logging.log4j.LogManager;
1925
import org.apache.logging.log4j.Logger;
@@ -28,39 +34,37 @@ public class AdvancedPeripherals {
2834
public static final Logger LOGGER = LogManager.getLogger(NAME);
2935
public static final Random RANDOM = new Random();
3036
public static final APCreativeTab TAB = new APCreativeTab();
31-
public static final APAddons ADDONS = new APAddons();
3237

33-
public AdvancedPeripherals() {
38+
public AdvancedPeripherals(IEventBus modBus) {
3439
LOGGER.info("AdvancedPeripherals says hello!");
35-
IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus();
40+
APAddon.setup();
3641

3742
APConfig.register(ModLoadingContext.get());
3843

39-
modBus.addListener(this::commonSetup);
40-
modBus.addListener(this::onLoadComplete);
41-
APRegistration.register();
42-
MinecraftForge.EVENT_BUS.register(this);
43-
new APAddons();
44+
modBus.addListener(this::registerCapabilities);
45+
modBus.addListener(ChunkManager::registerTicketController);
46+
47+
APRegistration.register(modBus);
4448
}
4549

50+
4651
public static void debug(String message) {
4752
if (APConfig.GENERAL_CONFIG.enableDebugMode.get())
48-
LOGGER.debug("[DEBUG] {}", message);
53+
LOGGER.info("[DEBUG] {}", message);
4954
}
5055

5156
public static void debug(String message, Level level) {
5257
if (APConfig.GENERAL_CONFIG.enableDebugMode.get())
5358
LOGGER.log(level, "[DEBUG] {}", message);
5459
}
5560

56-
public static void exception(String message, Exception exception) {
57-
if (APConfig.GENERAL_CONFIG.enableDebugMode.get()) {
58-
LOGGER.error("[DEBUG]", exception);
59-
}
61+
public static void debug(String message, Throwable throwable) {
62+
if (APConfig.GENERAL_CONFIG.enableDebugMode.get())
63+
LOGGER.error("[DEBUG] " + message, throwable);
6064
}
6165

6266
public static ResourceLocation getRL(String resource) {
63-
return new ResourceLocation(MOD_ID, resource);
67+
return ResourceLocation.fromNamespaceAndPath(MOD_ID, resource);
6468
}
6569

6670
public void commonSetup(FMLCommonSetupEvent event) {
@@ -72,9 +76,58 @@ public void commonSetup(FMLCommonSetupEvent event) {
7276

7377
public void onLoadComplete(FMLLoadCompleteEvent event) {
7478
event.enqueueWork(() -> {
75-
if (APAddons.appliedEnergisticsLoaded) {
79+
if (APAddon.AE2.isLoaded()) {
7680
AE2Registries.finishRegister();
7781
}
7882
});
7983
}
84+
85+
public void registerCapabilities(RegisterCapabilitiesEvent event) {
86+
APRegistration.BLOCK_ENTITIES.getEntries().forEach((entry) -> {
87+
88+
event.registerBlockEntity(
89+
PeripheralCapability.get(),
90+
entry.get(),
91+
(blockEntity, side) -> {
92+
if (blockEntity instanceof ICapabilityProvider provider)
93+
return provider.createPeripheralCap(side);
94+
return null;
95+
});
96+
97+
event.registerBlockEntity(
98+
Capabilities.ItemHandler.BLOCK,
99+
entry.get(),
100+
(blockEntity, side) -> {
101+
if (blockEntity instanceof ICapabilityProvider provider)
102+
return provider.createItemHandlerCap(side);
103+
return null;
104+
});
105+
106+
event.registerBlockEntity(
107+
Capabilities.FluidHandler.BLOCK,
108+
entry.get(),
109+
(blockEntity, side) -> {
110+
if (blockEntity instanceof ICapabilityProvider provider)
111+
return provider.createFluidHandlerCap(side);
112+
return null;
113+
});
114+
115+
event.registerBlockEntity(
116+
Capabilities.EnergyStorage.BLOCK,
117+
entry.get(),
118+
(blockEntity, side) -> {
119+
if (blockEntity instanceof ICapabilityProvider provider)
120+
return provider.createEnergyStorageCap(side);
121+
return null;
122+
});
123+
});
124+
125+
if (APAddon.AE2.isLoaded())
126+
AEApi.registerCapabilities(event);
127+
if (APAddon.REFINEDSTORAGE.isLoaded())
128+
RSApi.registerCapabilities(event);
129+
130+
IntegrationPeripheralProvider.registerBlockIntegrations(event);
131+
132+
}
80133
}

src/main/java/de/srendi/advancedperipherals/client/ClientEventSubscriber.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,29 @@
22

33
import com.mojang.blaze3d.platform.InputConstants;
44
import de.srendi.advancedperipherals.AdvancedPeripherals;
5+
import de.srendi.advancedperipherals.client.screens.SaddleTurtleScreen;
56
import de.srendi.advancedperipherals.common.entity.TurtleSeatEntity;
67
import de.srendi.advancedperipherals.common.network.APNetworking;
78
import de.srendi.advancedperipherals.common.network.toserver.SaddleTurtleControlPacket;
89
import net.minecraft.client.Minecraft;
910
import net.minecraft.client.player.Input;
10-
import net.minecraftforge.api.distmarker.Dist;
11-
import net.minecraftforge.client.event.InputEvent;
12-
import net.minecraftforge.client.event.MovementInputUpdateEvent;
13-
import net.minecraftforge.client.event.RenderGuiOverlayEvent;
14-
import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay;
15-
import net.minecraftforge.event.entity.EntityMountEvent;
16-
import net.minecraftforge.eventbus.api.SubscribeEvent;
17-
import net.minecraftforge.fml.common.Mod;
11+
import net.neoforged.api.distmarker.Dist;
1812

19-
@Mod.EventBusSubscriber(modid = AdvancedPeripherals.MOD_ID, value = Dist.CLIENT)
13+
import net.neoforged.bus.api.SubscribeEvent;
14+
import net.neoforged.fml.common.EventBusSubscriber;
15+
import net.neoforged.neoforge.client.event.InputEvent;
16+
import net.neoforged.neoforge.client.event.MovementInputUpdateEvent;
17+
import net.neoforged.neoforge.client.event.RenderGuiEvent;
18+
import net.neoforged.neoforge.client.event.RenderGuiLayerEvent;
19+
import net.neoforged.neoforge.client.gui.VanillaGuiLayers;
20+
import net.neoforged.neoforge.event.entity.EntityMountEvent;
21+
22+
@EventBusSubscriber(modid = AdvancedPeripherals.MOD_ID, value = Dist.CLIENT)
2023
public class ClientEventSubscriber {
2124
@SubscribeEvent
22-
public static void renderingHuds(RenderGuiOverlayEvent.Pre event) {
23-
if (ClientRegistry.SADDLE_TURTLE_OVERLAY.shouldRenderFuelBar() && event.getOverlay().id().equals(VanillaGuiOverlay.EXPERIENCE_BAR.id())) {
25+
public static void renderingHuds(RenderGuiLayerEvent.Pre event) {
26+
if (ClientRegistry.SADDLE_TURTLE_OVERLAY.shouldRenderFuelBar() && event.getName().equals(VanillaGuiLayers.EXPERIENCE_BAR)) {
2427
event.setCanceled(true);
25-
return;
2628
}
2729
}
2830

@@ -66,7 +68,7 @@ public static void playerMounting(EntityMountEvent event) {
6668

6769
@SubscribeEvent
6870
public static void playerMove(MovementInputUpdateEvent event) {
69-
if (ClientRegistry.SADDLE_TURTLE_OVERLAY.isPlayerControllingTurtle()) {
71+
if (SaddleTurtleScreen.isPlayerControllingTurtle()) {
7072
Input input = event.getInput();
7173
if (sneaking == lastSneak && lastInput != null) {
7274
if (lastInput.up == input.up && lastInput.down == input.down && lastInput.left == input.left && lastInput.right == input.right && lastInput.jumping == input.jumping) {

src/main/java/de/srendi/advancedperipherals/client/ClientRegistry.java

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package de.srendi.advancedperipherals.client;
22

3-
import dan200.computercraft.api.client.ComputerCraftAPIClient;
3+
import dan200.computercraft.api.client.turtle.RegisterTurtleModellersEvent;
44
import dan200.computercraft.api.client.turtle.TurtleUpgradeModeller;
55
import de.srendi.advancedperipherals.AdvancedPeripherals;
66
import de.srendi.advancedperipherals.client.renderer.DistanceDetectorRenderer;
@@ -15,54 +15,53 @@
1515
import net.minecraft.client.gui.screens.MenuScreens;
1616
import net.minecraft.client.resources.model.ModelResourceLocation;
1717
import net.minecraft.resources.ResourceLocation;
18-
import net.minecraftforge.api.distmarker.Dist;
19-
import net.minecraftforge.client.event.EntityRenderersEvent;
20-
import net.minecraftforge.client.event.ModelEvent;
21-
import net.minecraftforge.client.event.RegisterGuiOverlaysEvent;
22-
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
23-
import net.minecraftforge.eventbus.api.EventPriority;
24-
import net.minecraftforge.eventbus.api.SubscribeEvent;
25-
import net.minecraftforge.fml.common.Mod;
26-
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
18+
import net.neoforged.api.distmarker.Dist;
19+
import net.neoforged.bus.api.EventPriority;
20+
import net.neoforged.bus.api.SubscribeEvent;
2721

28-
@Mod.EventBusSubscriber(modid = AdvancedPeripherals.MOD_ID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)
29-
public class ClientRegistry {
22+
import net.neoforged.fml.common.EventBusSubscriber;
23+
import net.neoforged.fml.common.Mod;
24+
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
25+
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
26+
import net.neoforged.neoforge.client.event.ModelEvent;
27+
import net.neoforged.neoforge.client.event.RegisterGuiLayersEvent;
28+
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
29+
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
3030

31-
private static final String[] TURTLE_MODELS = new String[]{"turtle_chat_box_upgrade_left", "turtle_chat_box_upgrade_right", "turtle_environment_upgrade_left", "turtle_environment_upgrade_right", "turtle_player_upgrade_left", "turtle_player_upgrade_right", "turtle_geoscanner_upgrade_left", "turtle_geoscanner_upgrade_right"};
31+
@EventBusSubscriber(modid = AdvancedPeripherals.MOD_ID, value = Dist.CLIENT)
32+
public class ClientRegistry {
3233

3334
public static final SaddleTurtleScreen SADDLE_TURTLE_OVERLAY = new SaddleTurtleScreen();
3435
public static final OverlayModuleOverlay OVERLAY_MODULE_OVERLAY = new OverlayModuleOverlay();
3536

3637
@SubscribeEvent
37-
public static void registerModels(ModelEvent.RegisterAdditional event) {
38-
for (String model : TURTLE_MODELS) {
39-
event.register(new ModelResourceLocation(new ResourceLocation(AdvancedPeripherals.MOD_ID, model), "inventory"));
40-
}
38+
public static void menuRegister(RegisterMenuScreensEvent event) {
39+
event.register(APContainerTypes.INVENTORY_MANAGER_CONTAINER.get(), InventoryManagerScreen::new);
40+
event.register(APContainerTypes.SMART_GLASSES_CONTAINER.get(), SmartGlassesScreen::new);
4141
}
4242

4343
@SubscribeEvent
4444
public static void onClientSetup(FMLClientSetupEvent event) {
45-
MenuScreens.register(APContainerTypes.INVENTORY_MANAGER_CONTAINER.get(), InventoryManagerScreen::new);
46-
MenuScreens.register(APContainerTypes.SMART_GLASSES_CONTAINER.get(), SmartGlassesScreen::new);
47-
48-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.CHUNKY_TURTLE.get(), TurtleUpgradeModeller.flatItem());
49-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.COMPASS_TURTLE.get(), TurtleUpgradeModeller.flatItem());
50-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.SADDLE_TURTLE.get(), TurtleUpgradeModeller.flatItem());
51-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.CHAT_BOX_TURTLE.get(), TurtleUpgradeModeller.sided(new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_chat_box_upgrade_left"), "inventory"), new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_chat_box_upgrade_right"), "inventory")));
52-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.ENVIRONMENT_TURTLE.get(), TurtleUpgradeModeller.sided(new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_environment_upgrade_left"), "inventory"), new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_environment_upgrade_right"), "inventory")));
53-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.GEO_SCANNER_TURTLE.get(), TurtleUpgradeModeller.sided(new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_geoscanner_upgrade_left"), "inventory"), new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_geoscanner_upgrade_right"), "inventory")));
54-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.PLAYER_DETECTOR_TURTLE.get(), TurtleUpgradeModeller.sided(new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_player_upgrade_left"), "inventory"), new ModelResourceLocation(AdvancedPeripherals.getRL("turtle_player_upgrade_right"), "inventory")));
55-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.OP_END_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
56-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.OP_HUSBANDRY_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
57-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.OP_WEAK_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
58-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.HUSBANDRY_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
59-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.END_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
60-
ComputerCraftAPIClient.registerTurtleUpgradeModeller(CCRegistration.WEAK_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
61-
6245
ItemPropertiesRegistry.register();
6346
OverlayObjectHolder.registerDecodeObjects();
6447
}
6548

49+
@SubscribeEvent
50+
public static void onUpgradeModeller(RegisterTurtleModellersEvent event) {
51+
event.register(CCRegistration.CHUNKY_TURTLE.get(), TurtleUpgradeModeller.flatItem());
52+
event.register(CCRegistration.COMPASS_TURTLE.get(), TurtleUpgradeModeller.flatItem());
53+
event.register(CCRegistration.CHAT_BOX_TURTLE.get(), TurtleUpgradeModeller.sided(AdvancedPeripherals.getRL("block/turtle_chatty_left"), AdvancedPeripherals.getRL("block/turtle_chatty_right")));
54+
event.register(CCRegistration.ENVIRONMENT_TURTLE.get(), TurtleUpgradeModeller.sided(AdvancedPeripherals.getRL("block/turtle_environment_left"), AdvancedPeripherals.getRL("block/turtle_environment_right")));
55+
event.register(CCRegistration.GEO_SCANNER_TURTLE.get(), TurtleUpgradeModeller.sided(AdvancedPeripherals.getRL("block/turtle_geoscanner_left"), AdvancedPeripherals.getRL("block/turtle_geoscanner_right")));
56+
event.register(CCRegistration.PLAYER_DETECTOR_TURTLE.get(), TurtleUpgradeModeller.sided(AdvancedPeripherals.getRL("block/turtle_player_left"), AdvancedPeripherals.getRL("block/turtle_player_right")));
57+
event.register(CCRegistration.OP_END_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
58+
event.register(CCRegistration.OP_HUSBANDRY_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
59+
event.register(CCRegistration.OP_WEAK_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
60+
event.register(CCRegistration.HUSBANDRY_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
61+
event.register(CCRegistration.END_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
62+
event.register(CCRegistration.WEAK_TURTLE.get(), new MetaTurtleUpgradeModeller<>());
63+
}
64+
6665
@SubscribeEvent
6766
public static void registeringKeymappings(RegisterKeyMappingsEvent event) {
6867
KeyBindings.register(event);
@@ -74,7 +73,7 @@ public static void registeringRenderers(EntityRenderersEvent.RegisterRenderers e
7473
}
7574

7675
@SubscribeEvent(priority = EventPriority.LOWEST)
77-
public static void registeringOverlays(RegisterGuiOverlaysEvent event) {
76+
public static void registeringOverlays(RegisterGuiLayersEvent event) {
7877
event.registerAboveAll(SaddleTurtleScreen.ID, SADDLE_TURTLE_OVERLAY);
7978
event.registerAboveAll(OverlayModuleOverlay.ID, OVERLAY_MODULE_OVERLAY);
8079
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package de.srendi.advancedperipherals.client;
2+
3+
import de.srendi.advancedperipherals.AdvancedPeripherals;
4+
import de.srendi.advancedperipherals.common.network.APNetworking;
5+
import de.srendi.advancedperipherals.common.network.toserver.RetrieveUsernamePacket;
6+
import net.minecraft.world.item.ItemStack;
7+
import net.minecraft.world.item.TooltipFlag;
8+
import net.minecraft.world.level.Level;
9+
import org.jetbrains.annotations.Nullable;
10+
11+
import java.util.HashMap;
12+
import java.util.List;
13+
import java.util.UUID;
14+
15+
/**
16+
* Used for client side messages where we don't have a username, only a UUID
17+
* See {@link de.srendi.advancedperipherals.common.items.MemoryCardItem#appendHoverText(ItemStack, Level, List, TooltipFlag)} as example
18+
* <p>
19+
* Probably the most useless feature, but I love it - endi
20+
*/
21+
public class ClientUUIDCache {
22+
23+
private static final HashMap<UUID, String> CACHE = new HashMap<>();
24+
25+
private ClientUUIDCache() { }
26+
27+
@Nullable
28+
public static String getUsername(UUID uuid, UUID requester) {
29+
if (CACHE.containsKey(uuid))
30+
return CACHE.get(uuid);
31+
32+
APNetworking.sendToServer(new RetrieveUsernamePacket(uuid, requester));
33+
return null;
34+
}
35+
36+
public static void putUsername(UUID uuid, String username) {
37+
CACHE.put(uuid, username);
38+
AdvancedPeripherals.debug(String.format("Putting username %s with uuid %s into cache", username, uuid));
39+
}
40+
41+
}

src/main/java/de/srendi/advancedperipherals/client/KeyBindings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package de.srendi.advancedperipherals.client;
22

33
import net.minecraft.client.KeyMapping;
4-
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
4+
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
55
import org.lwjgl.glfw.GLFW;
66

77
public class KeyBindings {

0 commit comments

Comments
 (0)