package com.thebrokenrail.slightlyvanilla; import com.thebrokenrail.slightlyvanilla.dispenser.SlimeballDispenserBehavior; import com.thebrokenrail.slightlyvanilla.dispenser.SpawnEggDispenserBehavior; import com.thebrokenrail.slightlyvanilla.entity.SlimeballEntity; import com.thebrokenrail.slightlyvanilla.entity.SpawnEggEntity; import me.sargunvohra.mcmods.autoconfig1u.AutoConfig; import me.sargunvohra.mcmods.autoconfig1u.serializer.GsonConfigSerializer; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.tag.TagRegistry; import net.minecraft.block.Block; import net.minecraft.block.DispenserBlock; import net.minecraft.entity.EntityType; import net.minecraft.entity.SpawnGroup; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Items; import net.minecraft.item.SpawnEggItem; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.tag.Tag; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import java.util.Random; public class SlightlyVanilla implements ModInitializer { public static final String NAMESPACE = "slightlyvanilla"; public static EntityType SLIMEBALL_ENTITY; public static EntityType SPAWN_EGG_ENTITY; public static final Tag NETHER_PORTAL_FRAME_BLOCKS_TAG = TagRegistry.block(new Identifier(NAMESPACE, "nether_portal_frame_blocks")); public static ModConfig getConfig() { return AutoConfig.getConfigHolder(ModConfig.class).getConfig(); } @Override public void onInitialize() { AutoConfig.register(ModConfig.class, GsonConfigSerializer::new); Identifier slimeballID = new Identifier(NAMESPACE, "slimeball"); Identifier spawnEggID = new Identifier(NAMESPACE, "spawn_egg"); SLIMEBALL_ENTITY = EntityType.Builder.create((EntityType.EntityFactory) SlimeballEntity::new, SpawnGroup.MISC).setDimensions(0.25f, 0.25f).build(slimeballID.toString()); SPAWN_EGG_ENTITY = EntityType.Builder.create((EntityType.EntityFactory) SpawnEggEntity::new, SpawnGroup.MISC).setDimensions(0.25f, 0.25f).build(spawnEggID.toString()); Registry.register(Registry.ENTITY_TYPE, slimeballID, SLIMEBALL_ENTITY); Registry.register(Registry.ENTITY_TYPE, spawnEggID, SPAWN_EGG_ENTITY); DispenserBlock.registerBehavior(Items.SLIME_BALL, new SlimeballDispenserBehavior()); for (SpawnEggItem spawnEgg : SpawnEggItem.getAll()) { DispenserBlock.registerBehavior(spawnEgg, new SpawnEggDispenserBehavior()); } } public static void playThrowSound(PlayerEntity user) { user.getEntityWorld().playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (new Random().nextFloat() * 0.4F + 0.8F)); } }