package net.mcreator.target.init; import net.mcreator.target.TargetMod; import net.mcreator.target.entity.*; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.minecraftforge.event.entity.EntityAttributeCreationEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) public class TargetModEntities { public static final DeferredRegister> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, TargetMod.MODID); public static final RegistryObject> TARGET_1 = register("target_1", EntityType.Builder.of(Target1Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(256).setUpdateInterval(3).setCustomClientFactory(Target1Entity::new).fireImmune().sized(0.875f, 2f)); public static final RegistryObject> MORTAR = register("mortar", EntityType.Builder.of(MortarEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(MortarEntity::new).fireImmune().sized(0.8f, 1.4f)); public static final RegistryObject> SENPAI = register("senpai", EntityType.Builder.of(SenpaiEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(1024).setUpdateInterval(3).setCustomClientFactory(SenpaiEntity::new) .sized(0.6f, 2f)); public static final RegistryObject> CLAYMORE = register("claymore", EntityType.Builder.of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f)); public static final RegistryObject> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile", EntityType.Builder.of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64) .setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> GUN_GRENADE = register("projectile_gun_grenade", EntityType.Builder.of(GunGrenadeEntity::new, MobCategory.MISC).setCustomClientFactory(GunGrenadeEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> TARGET = register("target", EntityType.Builder.of(TargetEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f)); public static final RegistryObject> RPG_ROCKET = register("projectile_rpg_rocket", EntityType.Builder.of(RpgRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> MORTAR_SHELL = register("projectile_mortar_shell", EntityType.Builder.of(MortarShellEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> BOCEK_ARROW = register("projectile_bocekarrow", EntityType.Builder.of(BocekArrowEntity::new, MobCategory.MISC).setCustomClientFactory(BocekArrowEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> PROJECTILE = register("projectile", EntityType.Builder.of(ProjectileEntity::new, MobCategory.MISC).setTrackingRange(512).sized(0.5f, 0.5f)); private static RegistryObject> register(String registryname, EntityType.Builder entityTypeBuilder) { return REGISTRY.register(registryname, () -> entityTypeBuilder.build(registryname)); } @SubscribeEvent public static void init(FMLCommonSetupEvent event) { event.enqueueWork(SenpaiEntity::init); } @SubscribeEvent public static void registerAttributes(EntityAttributeCreationEvent event) { event.put(TARGET_1.get(), Target1Entity.createAttributes().build()); event.put(MORTAR.get(), MortarEntity.createAttributes().build()); event.put(SENPAI.get(), SenpaiEntity.createAttributes().build()); event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build()); event.put(TARGET.get(), TargetEntity.createAttributes().build()); } }