Search in sources :

Example 1 with ConstellationTile

use of hellfirepvp.astralsorcery.common.constellation.ConstellationTile in project AstralSorcery by HellFirePvP.

the class CopyConstellation method doApply.

@Override
protected ItemStack doApply(ItemStack stack, LootContext context) {
    if (context.has(LootParameters.BLOCK_ENTITY)) {
        TileEntity tile = context.get(LootParameters.BLOCK_ENTITY);
        if (tile instanceof ConstellationTile && stack.getItem() instanceof ConstellationItem) {
            IWeakConstellation main = ((ConstellationTile) tile).getAttunedConstellation();
            IMinorConstellation trait = ((ConstellationTile) tile).getTraitConstellation();
            ((ConstellationItem) stack.getItem()).setAttunedConstellation(stack, main);
            ((ConstellationItem) stack.getItem()).setTraitConstellation(stack, trait);
        }
    }
    return stack;
}
Also used : TileEntity(net.minecraft.tileentity.TileEntity) IMinorConstellation(hellfirepvp.astralsorcery.common.constellation.IMinorConstellation) ConstellationTile(hellfirepvp.astralsorcery.common.constellation.ConstellationTile) ConstellationItem(hellfirepvp.astralsorcery.common.constellation.ConstellationItem) IWeakConstellation(hellfirepvp.astralsorcery.common.constellation.IWeakConstellation)

Example 2 with ConstellationTile

use of hellfirepvp.astralsorcery.common.constellation.ConstellationTile in project AstralSorcery by HellFirePvP.

the class BlockCrystalContainer method getPickBlock.

@Override
public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, PlayerEntity player) {
    ItemStack stack = super.getPickBlock(state, target, world, pos, player);
    if (stack.getItem() instanceof CrystalAttributeItem) {
        CrystalAttributeTile cat = MiscUtils.getTileAt(world, pos, CrystalAttributeTile.class, true);
        if (cat != null) {
            ((CrystalAttributeItem) stack.getItem()).setAttributes(stack, cat.getAttributes());
        }
    }
    if (stack.getItem() instanceof ConstellationItem) {
        ConstellationTile ct = MiscUtils.getTileAt(world, pos, ConstellationTile.class, true);
        if (ct != null) {
            ((ConstellationItem) stack.getItem()).setAttunedConstellation(stack, ct.getAttunedConstellation());
            ((ConstellationItem) stack.getItem()).setTraitConstellation(stack, ct.getTraitConstellation());
        }
    }
    return stack;
}
Also used : ItemStack(net.minecraft.item.ItemStack) CrystalAttributeItem(hellfirepvp.astralsorcery.common.crystal.CrystalAttributeItem) CrystalAttributeTile(hellfirepvp.astralsorcery.common.crystal.CrystalAttributeTile) ConstellationItem(hellfirepvp.astralsorcery.common.constellation.ConstellationItem) ConstellationTile(hellfirepvp.astralsorcery.common.constellation.ConstellationTile)

Example 3 with ConstellationTile

use of hellfirepvp.astralsorcery.common.constellation.ConstellationTile in project AstralSorcery by HellFirePvP.

the class BlockCrystalContainer method onBlockPlacedBy.

@Override
public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) {
    Item i = stack.getItem();
    if (i instanceof CrystalAttributeItem) {
        CrystalAttributeTile cat = MiscUtils.getTileAt(world, pos, CrystalAttributeTile.class, true);
        if (cat != null) {
            cat.setAttributes(((CrystalAttributeItem) i).getAttributes(stack));
        }
    }
    if (i instanceof ConstellationItem) {
        ConstellationTile ct = MiscUtils.getTileAt(world, pos, ConstellationTile.class, true);
        if (ct != null) {
            ct.setAttunedConstellation(((ConstellationItem) i).getAttunedConstellation(stack));
            ct.setTraitConstellation(((ConstellationItem) i).getTraitConstellation(stack));
        }
    }
}
Also used : CrystalAttributeItem(hellfirepvp.astralsorcery.common.crystal.CrystalAttributeItem) Item(net.minecraft.item.Item) ConstellationItem(hellfirepvp.astralsorcery.common.constellation.ConstellationItem) CrystalAttributeItem(hellfirepvp.astralsorcery.common.crystal.CrystalAttributeItem) CrystalAttributeTile(hellfirepvp.astralsorcery.common.crystal.CrystalAttributeTile) ConstellationItem(hellfirepvp.astralsorcery.common.constellation.ConstellationItem) ConstellationTile(hellfirepvp.astralsorcery.common.constellation.ConstellationTile)

Aggregations

ConstellationItem (hellfirepvp.astralsorcery.common.constellation.ConstellationItem)3 ConstellationTile (hellfirepvp.astralsorcery.common.constellation.ConstellationTile)3 CrystalAttributeItem (hellfirepvp.astralsorcery.common.crystal.CrystalAttributeItem)2 CrystalAttributeTile (hellfirepvp.astralsorcery.common.crystal.CrystalAttributeTile)2 IMinorConstellation (hellfirepvp.astralsorcery.common.constellation.IMinorConstellation)1 IWeakConstellation (hellfirepvp.astralsorcery.common.constellation.IWeakConstellation)1 Item (net.minecraft.item.Item)1 ItemStack (net.minecraft.item.ItemStack)1 TileEntity (net.minecraft.tileentity.TileEntity)1