Кидабельное зелье

Итак, у меня есть зелье, которое можно кинуть. Но при попадении в землю оно должно создавать небольшой (!) но очень мощный (!) взрыв, который уничтожит все (кроме бедрока и пары других нерушимых блоков). Итак, внимание вопрос: как?
 
world.createExplosion
[merge_posts_bbcode]Добавлено: 23.03.2016 18:56:18[/merge_posts_bbcode]

В методе onImpact или onCollided
Названия не точные, глянь в сорсе ворлда и экстендемой энтити
 
Блин, кинул бы код, но не могу его найти, могу только подсказку дать(Иначе никак помощь не могу)Скачиваешь thaumcraft из githaba, вот и найди код Алементума (он тебе поможет)
 
createExplosion, можно поточнее? Я видел недавно упоминание, но не помню как пользоваться.
 
Magitrop написал(а):
createExplosion, можно поточнее? Я видел недавно упоминание, но не помню как пользоваться.
Код:
this.worldObj.createExplosion(Entity, this.posX, this.posY, this.posZ, 2.0F, false);
Там где 2.0 - это радиус.
false - то что блоки не рушит.
 
Это я все понимаю, но:
- Что есть Entity? Это кто? Игрок, моб, или что вообще?
- Мне нужна огромная сила при небольшом радиусе, чтоб обсидиан ломала, а взрыв был бы в диаметре блоков 5
 
Тогда игрок, понятно.

А что насчет сильнейшего, но малюсенького взрыва?
[merge_posts_bbcode]Добавлено: 23.03.2016 21:45:12[/merge_posts_bbcode]

И желательно получить список энтити, которых задел взрыв, чтоб им не наносился урон

[merge_posts_bbcode]Добавлено: 23.03.2016 21:58:50[/merge_posts_bbcode]

И кстати, зелье не кидается. В чем дело?

[merge_posts_bbcode]Добавлено: 23.03.2016 21:58:56[/merge_posts_bbcode]

Код:
package com.alchemy.alchemy;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityTNTPrimed;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityPotion;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ArrowNockEvent;

public class Alkahest extends Item
{
    public Alkahest(int par1)
    {
        super();
        this.setCreativeTab(AlchemyBase.TabGeneral);
        this.setTextureName(AlchemyBase.MODID + ":Alkahest");
    }

    public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
    {
        ArrowNockEvent event = new ArrowNockEvent(par3EntityPlayer, par1ItemStack);
        MinecraftForge.EVENT_BUS.post(event);

        if (event.isCanceled())
        {
            return event.result;
        }

        if (par3EntityPlayer.capabilities.isCreativeMode || par3EntityPlayer.inventory.hasItem(AlchemyBase.Alkahest))
        {
            par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));

            if (!par2World.isRemote)
            {
                if (!par3EntityPlayer.capabilities.isCreativeMode || par3EntityPlayer.inventory.hasItem(AlchemyBase.Alkahest))
                {
                    par3EntityPlayer.inventory.consumeInventoryItem(AlchemyBase.Alkahest);
                    par2World.spawnEntityInWorld(new EntityTNTPrimed(par2World));
                }
            }

            par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
        }

        return par1ItemStack;
    }

    @Override
    public void registerIcons(IIconRegister par1IconRegister)
    {
        this.itemIcon = par1IconRegister.registerIcon(AlchemyBase.MODID + ":Alkahest");
    }

    //@SideOnly(Side.CLIENT)
    public boolean hasEffect(ItemStack par1ItemStack)
    {
        return true;
    }
}

[merge_posts_bbcode]Добавлено: 23.03.2016 21:59:21[/merge_posts_bbcode]

Замена на TntPrimed ничего не поменяла
 
Ты не дал нормальных координаторов для спавна:
Код:
new EntityTNTPrimed(par2World)
 
Хорошо, а как сделать бросок, а не просто так, будто он его уронил
[merge_posts_bbcode]Добавлено: 23.03.2016 22:11:03[/merge_posts_bbcode]

И, желательно, чтоб у брошенного объекта была текстура, а то он невидимый, не особо прикольно
 
1. Дать скорости, к примеру так:
Код:
entity.motionX *= 2D;
entity.motionY *= 2D;
entity.motionZ *= 2D;
2. Дать рендер для твоего Entity.
 
Magitrop написал(а):
Хорошо, а как сделать бросок, а не просто так, будто он его уронил
[merge_posts_bbcode]Добавлено: 23.03.2016 22:11:03[/merge_posts_bbcode]

И, желательно, чтоб у брошенного объекта была текстура, а то он невидимый, не особо прикольно
Скопируй с зелья или со снежка сущность и запили стандартный 2D рендер
 
Назад
Сверху