mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-06-22 08:24:10 +00:00
Register our BEs as entities
Fixes #2141. Hah, I wrote some tests for this in b03546a158b81a2e69ec636d0ba437f1dd73ad12, but they pass because hoppers still support vanilla inventories, but turtles don't. Wish NeoForge registered a fallback for any inventory, like Fabric does, but there we go.
This commit is contained in:
parent
b805a34c2d
commit
ffa6eadc26
@ -54,6 +54,8 @@ import net.neoforged.neoforge.capabilities.Capabilities;
|
|||||||
import net.neoforged.neoforge.capabilities.ItemCapability;
|
import net.neoforged.neoforge.capabilities.ItemCapability;
|
||||||
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
|
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
|
||||||
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
|
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
|
||||||
|
import net.neoforged.neoforge.items.wrapper.InvWrapper;
|
||||||
|
import net.neoforged.neoforge.items.wrapper.SidedInvWrapper;
|
||||||
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
|
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
|
||||||
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
|
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
|
||||||
import net.neoforged.neoforge.registries.DataPackRegistryEvent;
|
import net.neoforged.neoforge.registries.DataPackRegistryEvent;
|
||||||
@ -62,6 +64,7 @@ import net.neoforged.neoforge.registries.RegistryBuilder;
|
|||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.util.List;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
@Mod(ComputerCraftAPI.MOD_ID)
|
@Mod(ComputerCraftAPI.MOD_ID)
|
||||||
@ -151,6 +154,21 @@ public final class ComputerCraft {
|
|||||||
var media = new ItemComponentImpl<>(event, MediaCapability.get());
|
var media = new ItemComponentImpl<>(event, MediaCapability.get());
|
||||||
ModRegistry.registerMedia(media);
|
ModRegistry.registerMedia(media);
|
||||||
media.registerFallback((stack, ctx) -> MediaProviders.get(stack));
|
media.registerFallback((stack, ctx) -> MediaProviders.get(stack));
|
||||||
|
|
||||||
|
// Register inventories for our block entities.
|
||||||
|
var unsidedContainers = List.of(
|
||||||
|
ModRegistry.BlockEntities.TURTLE_NORMAL,
|
||||||
|
ModRegistry.BlockEntities.TURTLE_ADVANCED,
|
||||||
|
ModRegistry.BlockEntities.DISK_DRIVE
|
||||||
|
);
|
||||||
|
for (var inv : unsidedContainers) {
|
||||||
|
event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, inv.get(), (be, side) -> new InvWrapper(be));
|
||||||
|
}
|
||||||
|
|
||||||
|
event.registerBlockEntity(
|
||||||
|
Capabilities.ItemHandler.BLOCK, ModRegistry.BlockEntities.PRINTER.get(),
|
||||||
|
(be, side) -> side == null ? new InvWrapper(be) : new SidedInvWrapper(be, side)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private record BlockComponentImpl<T, C extends @Nullable Object>(
|
private record BlockComponentImpl<T, C extends @Nullable Object>(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user