Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =======================================================================================================================================
- ModItem
- public static final RegistryObject<Item> STRAWBERRY_COW_SPAWN_EGG = ITEMS.register("strawberry_cow_spawn_egg", () -> new ModSpawnEgg(ModEntity.STRAWBERRY_COW, 0xF5ABC5, 0xFFD7E5, new Item.Properties().group(MysticsBiomes.TAB)));
- =======================================================================================================================================
- ModSpawnEgg
- public class ModSpawnEgg extends SpawnEggItem {
- protected final static List<ModSpawnEgg> UNADDED_EGGS = new ArrayList<>();
- private final Lazy<? extends EntityType<?>> entityTypeSupplier;
- public ModSpawnEgg(final RegistryObject<? extends EntityType<?>> entityTypeSupplier, int primaryColorIn, int secondaryColorIn, Properties builder) {
- super(null, primaryColorIn, secondaryColorIn, builder);
- this.entityTypeSupplier = Lazy.of(entityTypeSupplier::get);
- UNADDED_EGGS.add(this);
- }
- public static void initSpawnEgg() {
- final Map<EntityType<?>, SpawnEggItem> EGGS = ObfuscationReflectionHelper.getPrivateValue(SpawnEggItem.class, null, "field_195987_b");
- DefaultDispenseItemBehavior dispenseBehavior = new DefaultDispenseItemBehavior() {
- @Override
- protected ItemStack dispenseStack(IBlockSource source, ItemStack stack) {
- Direction direction = source.getBlockState().get(DispenserBlock.FACING);
- EntityType<?> type = ((SpawnEggItem) stack.getItem()).getType(stack.getTag());
- type.spawn(source.getWorld(), stack, null, source.getBlockPos(),
- SpawnReason.DISPENSER, direction != Direction.UP, false);
- stack.shrink(1);
- return stack;
- }
- };
- for (final SpawnEggItem spawnEgg : UNADDED_EGGS) {
- EGGS.put(spawnEgg.getType(null), spawnEgg);
- DispenserBlock.registerDispenseBehavior(spawnEgg, dispenseBehavior);
- }
- UNADDED_EGGS.clear();
- }
- @Override
- public EntityType<?> getType(CompoundNBT nbt) {
- return this.entityTypeSupplier.get();
- }
- }
- =======================================================================================================================================
- ClientEventBusSubscriber
- @SubscribeEvent
- public static void onRegisterEntities(final RegistryEvent.Register<EntityType<?>> event) {
- ModSpawnEgg.initSpawnEgg();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement