
/*
 *    MCreator note: This file will be REGENERATED on each build.
 */
package net.mcreator.mobki.init;

import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;

import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Entity;

import net.mcreator.mobki.entity.ZeusEntity;
import net.mcreator.mobki.entity.TrollEntity;
import net.mcreator.mobki.entity.MidasEntity;
import net.mcreator.mobki.entity.FeniksEntity;
import net.mcreator.mobki.MobkiMod;

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class MobkiModEntities {
	public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, MobkiMod.MODID);
	public static final RegistryObject<EntityType<ZeusEntity>> ZEUS = register("zeus",
			EntityType.Builder.<ZeusEntity>of(ZeusEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ZeusEntity::new).fireImmune().sized(0.6f, 1.95f));
	public static final RegistryObject<EntityType<FeniksEntity>> FENIKS = register("feniks",
			EntityType.Builder.<FeniksEntity>of(FeniksEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(FeniksEntity::new).fireImmune().sized(0.4f, 0.7f));
	public static final RegistryObject<EntityType<TrollEntity>> TROLL = register("troll",
			EntityType.Builder.<TrollEntity>of(TrollEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TrollEntity::new).fireImmune().sized(1f, 1f));
	public static final RegistryObject<EntityType<MidasEntity>> MIDAS = register("midas",
			EntityType.Builder.<MidasEntity>of(MidasEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(MidasEntity::new)

					.sized(0.6f, 1.95f));

	// Start of user code block custom entities
	// End of user code block custom entities
	private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
		return REGISTRY.register(registryname, () -> (EntityType<T>) entityTypeBuilder.build(registryname));
	}

	@SubscribeEvent
	public static void init(FMLCommonSetupEvent event) {
		event.enqueueWork(() -> {
			ZeusEntity.init();
			FeniksEntity.init();
			TrollEntity.init();
			MidasEntity.init();
		});
	}

	@SubscribeEvent
	public static void registerAttributes(EntityAttributeCreationEvent event) {
		event.put(ZEUS.get(), ZeusEntity.createAttributes().build());
		event.put(FENIKS.get(), FeniksEntity.createAttributes().build());
		event.put(TROLL.get(), TrollEntity.createAttributes().build());
		event.put(MIDAS.get(), MidasEntity.createAttributes().build());
	}
}
