/* * This file is part of NucleusFramework for Bukkit, licensed under the MIT License (MIT). * * Copyright (c) JCThePants (www.jcwhatever.com) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package com.jcwhatever.nucleus.managed.particles; import com.jcwhatever.nucleus.Nucleus; import com.jcwhatever.nucleus.managed.particles.IParticleEffectFactory; import com.jcwhatever.nucleus.managed.particles.ParticleType; import com.jcwhatever.nucleus.managed.particles.types.IBarrierParticle; import com.jcwhatever.nucleus.managed.particles.types.IBlockCrackParticle; import com.jcwhatever.nucleus.managed.particles.types.IBlockDustParticle; import com.jcwhatever.nucleus.managed.particles.types.ICloudParticle; import com.jcwhatever.nucleus.managed.particles.types.ICriticalHitMagicParticle; import com.jcwhatever.nucleus.managed.particles.types.ICriticalHitParticle; import com.jcwhatever.nucleus.managed.particles.types.IDripLavaParticle; import com.jcwhatever.nucleus.managed.particles.types.IDripWaterParticle; import com.jcwhatever.nucleus.managed.particles.types.IEnchantmentTableParticle; import com.jcwhatever.nucleus.managed.particles.types.IExplosionHugeParticle; import com.jcwhatever.nucleus.managed.particles.types.IExplosionLargeParticle; import com.jcwhatever.nucleus.managed.particles.types.IExplosionNormalParticle; import com.jcwhatever.nucleus.managed.particles.types.IFireworksSparkParticle; import com.jcwhatever.nucleus.managed.particles.types.IFlameParticle; import com.jcwhatever.nucleus.managed.particles.types.IFootstepParticle; import com.jcwhatever.nucleus.managed.particles.types.IHeartParticle; import com.jcwhatever.nucleus.managed.particles.types.IItemCrackParticle; import com.jcwhatever.nucleus.managed.particles.types.ILavaParticle; import com.jcwhatever.nucleus.managed.particles.types.INoteParticle; import com.jcwhatever.nucleus.managed.particles.types.IPortalParticle; import com.jcwhatever.nucleus.managed.particles.types.IRedstoneDustParticle; import com.jcwhatever.nucleus.managed.particles.types.ISlimeParticle; import com.jcwhatever.nucleus.managed.particles.types.ISmokeLargeParticle; import com.jcwhatever.nucleus.managed.particles.types.ISmokeNormalParticle; import com.jcwhatever.nucleus.managed.particles.types.ISnowShovelParticle; import com.jcwhatever.nucleus.managed.particles.types.ISnowballParticle; import com.jcwhatever.nucleus.managed.particles.types.ISpellInstantParticle; import com.jcwhatever.nucleus.managed.particles.types.ISpellMobAmbientParticle; import com.jcwhatever.nucleus.managed.particles.types.ISpellMobParticle; import com.jcwhatever.nucleus.managed.particles.types.ISpellParticle; import com.jcwhatever.nucleus.managed.particles.types.ISpellWitchParticle; import com.jcwhatever.nucleus.managed.particles.types.ISuspendedDepthParticle; import com.jcwhatever.nucleus.managed.particles.types.ITownAuraParticle; import com.jcwhatever.nucleus.managed.particles.types.IVillagerAngryParticle; import com.jcwhatever.nucleus.managed.particles.types.IVillagerHappyParticle; import com.jcwhatever.nucleus.managed.particles.types.IWaterBubbleParticle; import com.jcwhatever.nucleus.managed.particles.types.IWaterDropletParticle; import com.jcwhatever.nucleus.managed.particles.types.IWaterSplashParticle; import com.jcwhatever.nucleus.managed.particles.types.IWaterSuspendedParticle; import com.jcwhatever.nucleus.managed.particles.types.IWaterWakeParticle; /** * Particle effect factory utility. */ public final class Particles { private Particles() {} /** * Barrier block effect. */ public static IBarrierParticle createBarrier() { return factory().create(ParticleType.BARRIER); } /** * Block break and sprinting effect. */ public static IBlockCrackParticle createBlockCrack() { return factory().create(ParticleType.BLOCK_CRACK); } /** * Entity land on ground effect. */ public static IBlockDustParticle createBlockDust() { return factory().create(ParticleType.BLOCK_DUST); } /** * Entity death effect. */ public static ICloudParticle createCloud() { return factory().create(ParticleType.CLOUD); } /** * Critical hit with enchanted weapon effect. */ public static ICriticalHitMagicParticle createCriticalHitMagic() { return factory().create(ParticleType.CRITICAL_HIT_MAGIC); } /** * Critical hit and arrow hit effect. */ public static ICriticalHitParticle createCriticalHit() { return factory().create(ParticleType.CRITICAL_HIT); } /** * Lava dripping from ceiling effect. */ public static IDripLavaParticle createDripLava() { return factory().create(ParticleType.DRIP_LAVA); } /** * Water dripping from ceiling effect. */ public static IDripWaterParticle createDripWater() { return factory().create(ParticleType.DRIP_WATER); } /** * Enchantment table near book shelves effect. */ public static IEnchantmentTableParticle createEnchantmentTable() { return factory().create(ParticleType.ENCHANTMENT_TABLE); } /** * TNT/Creeper explosion effect. */ public static IExplosionHugeParticle createExplosionHuge() { return factory().create(ParticleType.EXPLOSION_HUGE); } /** * Ghast fireball and wither skull explosion effect. */ public static IExplosionLargeParticle createExplosionLarge() { return factory().create(ParticleType.EXPLOSION_LARGE); } /** * TNT/Creeper explosion effect. */ public static IExplosionNormalParticle createExplosionNormal() { return factory().create(ParticleType.EXPLOSION_NORMAL); } /** * Fireworks launch effect. */ public static IFireworksSparkParticle createFireworksSpark() { return factory().create(ParticleType.FIREWORKS_SPARK); } /** * Monster spawner, torch, furnaces and magma cube flame effect. */ public static IFlameParticle createFlame() { return factory().create(ParticleType.FLAME); } public static IFootstepParticle createFootstep() { return factory().create(ParticleType.FOOTSTEP); } /** * Animal taming and breeding effect. */ public static IHeartParticle createHeart() { return factory().create(ParticleType.HEART); } /** * Tool break and egg hit effect. */ public static IItemCrackParticle createItemCrack() { return factory().create(ParticleType.ITEM_CRACK); } /** * Lava block effect. */ public static ILavaParticle createLava() { return factory().create(ParticleType.LAVA); } /** * Note block effect. */ public static INoteParticle createNote() { return factory().create(ParticleType.NOTE); } /** * Nether portal, endermen, ender pearls, etc. effect. */ public static IPortalParticle createPortal() { return factory().create(ParticleType.PORTAL); } /** * Redstone and redstone related block effect. */ public static IRedstoneDustParticle createRedstoneDust() { return factory().create(ParticleType.RED_DUST); } /** * Slime entity effect. */ public static ISlimeParticle createSlime() { return factory().create(ParticleType.SLIME); } /** * Smoke from fire and blazes. */ public static ISmokeLargeParticle createSmokeLarge() { return factory().create(ParticleType.SMOKE_LARGE); } /** * Smoke from torches, end portals, brewing stands, TNT, droppers and * dispensers. */ public static ISmokeNormalParticle createSmokeNormal() { return factory().create(ParticleType.SMOKE_NORMAL); } /** * Thrown snowball hit effect. */ public static ISnowballParticle createSnowballPoof() { return factory().create(ParticleType.SNOWBALL_POOF); } public static ISnowShovelParticle createSnowShovel() { return factory().create(ParticleType.SNOW_SHOVEL); } /** * Instant splash potion break effect. */ public static ISpellInstantParticle createSpellInstant() { return factory().create(ParticleType.SPELL_INSTANT); } /** * Entity enchanted by beacon effect. */ public static ISpellMobAmbientParticle createSpellMobAmbient() { return factory().create(ParticleType.SPELL_MOB_AMBIENT); } /** * Entity enchanted effect. */ public static ISpellMobParticle createSpellMob() { return factory().create(ParticleType.SPELL_MOB); } /** * Splash potion break effect. */ public static ISpellParticle createSpell() { return factory().create(ParticleType.SPELL); } /** * Witch entity effect. */ public static ISpellWitchParticle createSpellWitch() { return factory().create(ParticleType.SPELL_WITCH); } /** * Bedrock and void effect. */ public static ISuspendedDepthParticle createSuspendedDepth() { return factory().create(ParticleType.SUSPENDED_DEPTH); } /** * Mycelium block effect. */ public static ITownAuraParticle createTownAura() { return factory().create(ParticleType.TOWN_AURA); } /** * Villager entity when trading or using bone meal effect. */ public static IVillagerHappyParticle createVillagerHappy() { return factory().create(ParticleType.VILLAGER_HAPPY); } /** * Villager entity effect when attacked. */ public static IVillagerAngryParticle createVillagerAngry() { return factory().create(ParticleType.VILLAGER_ANGRY); } /** * Swimming entity effect. */ public static IWaterBubbleParticle createWaterBubble() { return factory().create(ParticleType.WATER_BUBBLE); } /** * Rain water hitting the ground effect. */ public static IWaterDropletParticle createWaterDroplet() { return factory().create(ParticleType.WATER_DROPLET); } /** * Swimming entity and shaking wolves effect. */ public static IWaterSplashParticle createWaterSplash() { return factory().create(ParticleType.WATER_SPLASH); } /** * Water effect. */ public static IWaterSuspendedParticle createWaterSuspended() { return factory().create(ParticleType.WATER_SUSPENDED); } /** * Fishing effect. */ public static IWaterWakeParticle createWaterWake() { return factory().create(ParticleType.WATER_WAKE); } public static IParticleEffectFactory factory() { return Nucleus.getParticleEffects(); } }