62 lines
2.8 KiB
Java
62 lines
2.8 KiB
Java
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<SlimeballEntity> SLIMEBALL_ENTITY;
|
|
public static EntityType<SpawnEggEntity> SPAWN_EGG_ENTITY;
|
|
|
|
public static final Tag<Block> 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>) SlimeballEntity::new, SpawnGroup.MISC).setDimensions(0.25f, 0.25f).build(slimeballID.toString());
|
|
SPAWN_EGG_ENTITY = EntityType.Builder.create((EntityType.EntityFactory<SpawnEggEntity>) 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));
|
|
}
|
|
}
|