• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ArmorStand类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.spongepowered.api.entity.living.ArmorStand的典型用法代码示例。如果您正苦于以下问题:Java ArmorStand类的具体用法?Java ArmorStand怎么用?Java ArmorStand使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ArmorStand类属于org.spongepowered.api.entity.living包,在下文中一共展示了ArmorStand类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: createDummyArmorStand

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
static ArmorStand createDummyArmorStand(Block block) {
    World world = block.getWorld()
            .orElseThrow(() -> new IllegalStateException("Could not access the world this block resides in."));
    Vector3d armorStandPosition = block.getPosition().toDouble().add(Vector3d.ONE.mul(0.5));
    ArmorStand armorStand = (ArmorStand) world.createEntity(EntityTypes.ARMOR_STAND, armorStandPosition);

    armorStand.offer(Keys.IS_SILENT, true);
    armorStand.offer(Keys.INVISIBLE, true);
    armorStand.offer(Keys.ARMOR_STAND_MARKER, true);
    armorStand.offer(Keys.HAS_GRAVITY, false);
    armorStand.offer(Keys.PERSISTS, true);
    armorStand.offer(Keys.IS_SILENT, true);
    armorStand.setHeadRotation(Vector3d.ZERO);
    armorStand.setRotation(Vector3d.ZERO);

    return armorStand;
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:18,代码来源:CustomBlockDefinition.java


示例2: readFrom

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
@Override
public void readFrom(DataView data) {
    super.readFrom(data);

    this.tracker.readFrom(this.world, data);
    this.pickaxeStand = (ArmorStand) this.tracker.get("toolStand");
    this.block.setStand((ArmorStand) this.tracker.get("blockStand"));
    FallingBlock falling = (FallingBlock) this.tracker.get("blockEntity");
    this.block.setEntity(falling, false);
    if (falling != null) {
        // Vanilla serializes this as a byte so we need to set it back to Integer.MIN_VALUE
        falling.offer(Keys.FALL_TIME, Integer.MIN_VALUE);
    }

    this.task.readFrom(data.getView(of("task")).get());
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:17,代码来源:TurtleEntity.java


示例3: create

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
private boolean create() {
    if (this.entity == null) {
        return false;
    }
    if (this.stand != null) {
        // For some reason setPassenger behaves differently
        return this.entity.setVehicle(this.stand);
    }
    this.stand = (ArmorStand) this.entity.getWorld().createEntity(EntityTypes.ARMOR_STAND,
            this.entity.getLocation().getPosition());
    if (!this.stand.offer(Keys.HAS_GRAVITY, false).isSuccessful()) {
        return false;
    }
    ArmorStandData data = this.stand.getOrCreate(ArmorStandData.class).get();
    data.set(data.basePlate().set(false));
    data.set(data.small().set(true));
    data.set(data.marker().set(true));
    if (!this.stand.offer(data).isSuccessful()) {
        return false;
    }
    this.stand.tryOffer(Keys.INVISIBLE, true);
    if (!this.stand.addPassenger(this.entity)) {
        return false;
    }
    return true;
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:27,代码来源:SupportiveArmorStand.java


示例4: spawnItem

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
private void spawnItem(World world) {
    if (this.entityRef != null) {
        this.itemStand = (ArmorStand) world.getEntity(this.entityRef).orElse(null);
        this.entityRef = null;
        if (this.itemStand != null) {
            return;
        }
    }
    this.itemStand = createStand(world, this.pos);
    Item itemEntity = createItem(world, this.pos, this.stack, true);
    if (!this.itemStand.addPassenger(itemEntity)) {
        this.itemStand = null;
        return; // Attach passenger failed
    }
    if (!world.spawnEntity(this.itemStand, WorldManager.SPAWN_CAUSE)) {
        this.itemStand = null;
        return; // Spawn stand failed
    }
    if (!world.spawnEntity(itemEntity, WorldManager.SPAWN_CAUSE)) {
        this.itemStand = null;
        return; // Spawn item failed
    }
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:24,代码来源:ItemStackHolder.java


示例5: setupArmorStand

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
private void setupArmorStand(ArmorStand stand, Vector3d rotation) {
    ArmorStandData data = stand.getOrCreate(ArmorStandData.class).get();
    data.set(data.basePlate().set(false));
    data.set(data.marker().set(true));
    stand.offer(data);
    stand.offer(Keys.HAS_GRAVITY, false);
    if (rotation != null) {
        stand.offer(Keys.HEAD_ROTATION, rotation);
    }
    stand.setRotation(Vector3d.ZERO);
    stand.setHelmet(this.pane);
    // EntityArmorStand entStand = (EntityArmorStand) stand;
    // entStand.preventEntitySpawning = false;
    // entStand.width = 0.5F;
    // entStand.height = 1.1F;
    // entStand.noClip = true;
    // AxisAlignedBB bb = entStand.getEntityBoundingBox();
    // entStand.setEntityBoundingBox(new AxisAlignedBB(bb.minX, bb.minY, bb.minZ,
    // bb.minX + 0.5, bb.minY + 0.5, bb.minZ + 0.5));

    stand.tryOffer(Keys.INVISIBLE, true);
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:23,代码来源:PipeBlock.java


示例6: PipeBlock

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public PipeBlock() {
    this.pane = ItemStack.of(ItemTypes.STAINED_GLASS_PANE, 1);
    Vector3d rotX = new Vector3d(90, 0, 0);
    Vector3d rotY = new Vector3d(0, 90, 0);
    this.entityStruct = new MultiEntityStructure.Builder()
            .define(Direction.DOWN.name(), EntityTypes.ARMOR_STAND,
                    armorStandOffset(true, Axis.Z, new Vector3f(0.5, 0.2, 0.5)),
                    ArmorStand.class, stand -> setupArmorStand(stand, rotX))
            .define(Direction.UP.name(), EntityTypes.ARMOR_STAND,
                    armorStandOffset(true, Axis.Z, new Vector3f(0.5, 0.7375, 0.5)),
                    ArmorStand.class, stand -> setupArmorStand(stand, rotX))
            .define(Direction.NORTH.name(), EntityTypes.ARMOR_STAND,
                    armorStandOffset(false, Axis.Z, new Vector3f(0.5, 0.2, 0.2)),
                    ArmorStand.class, stand -> setupArmorStand(stand, null))
            .define(Direction.SOUTH.name(), EntityTypes.ARMOR_STAND,
                    armorStandOffset(false, Axis.Z, new Vector3f(0.5, 0.2, 0.8)),
                    ArmorStand.class, stand -> setupArmorStand(stand, null))
            .define(Direction.EAST.name(), EntityTypes.ARMOR_STAND,
                    armorStandOffset(false, Axis.X, new Vector3f(0.8, 0.2, 0.5)),
                    ArmorStand.class, stand -> setupArmorStand(stand, rotY))
            .define(Direction.WEST.name(), EntityTypes.ARMOR_STAND,
                    armorStandOffset(false, Axis.X, new Vector3f(0.2, 0.2, 0.5)),
                    ArmorStand.class, stand -> setupArmorStand(stand, rotY))
            .build();
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:26,代码来源:PipeBlock.java


示例7: removeArmorstands

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public void removeArmorstands() {
    for(World bit: Sponge.getServer().getWorlds()) {
        for (Entity ent : bit.getEntities()) {
            if (ent instanceof ArmorStand) {
                ArmorStand arm = (ArmorStand) ent;
                if (arm.getCreator().isPresent()) {
                    if (arm.getCreator().get().equals(UUID.fromString(armorStandIdentifier))) {
                        arm.remove();
                    }
                }
            }
        }
    }
}
 
开发者ID:codeHusky,项目名称:HuskyCrates-Sponge,代码行数:15,代码来源:HuskyCrates.java


示例8: onArmorStand

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
@Listener
public void onArmorStand(SpawnEntityEvent.ChunkLoad event){
    for(Entity e : event.getEntities()){
        if(!(e instanceof ArmorStand))
            continue;
        ArmorStand as = (ArmorStand) e;
        if (as.getCreator().isPresent()) {
            if (as.getCreator().get().equals(UUID.fromString(armorStandIdentifier))) {
                as.remove();
            }
        }
    }
}
 
开发者ID:codeHusky,项目名称:HuskyCrates-Sponge,代码行数:14,代码来源:HuskyCrates.java


示例9: onInteract

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
@Listener(order=Order.FIRST, beforeModifications = true)
public void onInteract(InteractEntityEvent event, @First Player player)
{
	if (!ConfigHandler.getNode("worlds").getNode(player.getWorld().getName()).getNode("enabled").getBoolean())
	{
		return;
	}
	if (player.hasPermission("nations.admin.bypass.perm.interact"))
	{
		return;
	}
	Entity target = event.getTargetEntity();
	if (target instanceof Player || target instanceof Monster)
	{
		return;
	}
	if (target instanceof ItemFrame || target instanceof ArmorStand)
	{
		if (player.hasPermission("nations.admin.bypass.perm.build"))
		{
			return;
		}
		if (!DataHandler.getPerm("build", player.getUniqueId(), event.getTargetEntity().getLocation()))
		{
			event.setCancelled(true);
			player.sendMessage(Text.of(TextColors.RED, LanguageHandler.ERROR_PERM_BUILD));
		}
		return;
	}
	if (!DataHandler.getPerm("interact", player.getUniqueId(), event.getTargetEntity().getLocation()))
	{
		event.setCancelled(true);
		player.sendMessage(Text.of(TextColors.RED, LanguageHandler.ERROR_PERM_INTERACT));
	}
}
 
开发者ID:Arckenver,项目名称:Nations,代码行数:36,代码来源:InteractPermListener.java


示例10: getDataHolder

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
@Override
default ArmorStand getDataHolder() {
    Entity entity = getExtent().getEntity(getArmorStandId())
            .orElseThrow(() -> new IllegalStateException("Could not find the armor stand entity."));

    if(!(entity instanceof ArmorStand))
        throw new IllegalStateException("The data holder entity assigned to this custom block is not an armor stand.");

    return (ArmorStand) entity;
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:11,代码来源:CustomBlock.java


示例11: resolveCurrentModel

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
@Override
protected Optional<String> resolveCurrentModel() {
    ArmorStand armorStand = getDataHolder();
    PluginContainer pluginContainer = getDefinition().getPluginContainer();

    return armorStand.getHelmet()
            .flatMap(itemStack -> DurabilityRegistry.resolveCurrentModel(itemStack, pluginContainer));
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:9,代码来源:SimpleCustomBlock.java


示例12: applyModel

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
@Override
protected void applyModel(String model) {
    ArmorStand armorStand = getDataHolder();
    ItemStack itemStack = createHelmet(model);

    armorStand.setHelmet(itemStack);
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:8,代码来源:SimpleCustomBlock.java


示例13: AbstractCustomBlock

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public AbstractCustomBlock(T definition, Block block, UUID armorStandId) {
    super(definition);
    Preconditions.checkArgument(block.getWorld().isPresent(), "Invalid extent.");

    this.block = block;

    Preconditions.checkArgument(getExtent().getEntity(armorStandId)
            .filter(ArmorStand.class::isInstance).isPresent(), "The armor stand is not accessible.");

    this.armorStandId = armorStandId;
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:12,代码来源:AbstractCustomBlock.java


示例14: getBlock

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public Optional<? extends CustomBlock<? extends CustomBlockDefinition>> getBlock(ArmorStand armorStand) {
    return getBlockDefinition(armorStand).flatMap(definition -> {
        Block block = Block.of(armorStand.getLocation());

        blockToArmorStand.put(block, Optional.of(armorStand.getUniqueId()));

        return definition.wrapIfPossible(block);
    });
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:10,代码来源:CustomItemServiceImpl.java


示例15: findArmorStandAt

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public Optional<ArmorStand> findArmorStandAt(Block block) {
    Set<ArmorStand> armorStands = findArmorStandsAt(block);

    if (armorStands.isEmpty())
        return Optional.empty();

    Iterator<ArmorStand> armorStandIterator = armorStands.iterator();
    ArmorStand armorStand = armorStandIterator.next();

    while (armorStandIterator.hasNext()) {
        armorStandIterator.next().remove();
    }

    return Optional.of(armorStand);
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:16,代码来源:CustomItemServiceImpl.java


示例16: findArmorStandsAt

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public Set<ArmorStand> findArmorStandsAt(Block block) {
    Chunk chunk = block.getChunk()
            .orElseThrow(() -> new IllegalStateException("Could not access the chunk of this block."));
    Vector3i blockPosition = block.getPosition();
    AABB aabb = new AABB(blockPosition, blockPosition.add(Vector3i.ONE));
    Set<Entity> entities = chunk.getIntersectingEntities(aabb, CustomItemServiceImpl::isCustomBlockArmorStand);
    Iterator<Entity> entityIterator = entities.iterator();

    return StreamSupport.stream(Spliterators.spliteratorUnknownSize(entityIterator, Spliterator.ORDERED), false)
            .map(ArmorStand.class::cast)
            .collect(Collectors.toSet());
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:13,代码来源:CustomItemServiceImpl.java


示例17: registerBlocksInChunk

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
private void registerBlocksInChunk(Chunk chunk) {
    CustomItemServiceImpl service = CustomItemLibrary.getInstance().getService();

    chunk.getEntities().stream()
            .filter(ArmorStand.class::isInstance)
            .map(ArmorStand.class::cast)
            .map(service::getBlock)
            .filter(Optional::isPresent)
            .map(Optional::get)
            .filter(SimpleCustomBlock.class::isInstance)
            .map(SimpleCustomBlock.class::cast)
            .forEach(customBlock -> loadedBlocks.put(customBlock.getBlock(), customBlock));
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:14,代码来源:CustomItemServiceImpl.java


示例18: createInternalEntities

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
private boolean createInternalEntities(CustomWorld world) {
    if (!this.block.hasEntity()) {
        FallingBlock actualBlock = (FallingBlock) this.world.createEntity(EntityTypes.FALLING_BLOCK, this.pos);
        if (!this.block.setEntity(actualBlock, true)) {
            return false;
        }
        world.addEntityToTracker(actualBlock, this);
        world.addEntityToTracker(this.block.getStand(), this);
        this.tracker.add("blockEntity", actualBlock);
        this.tracker.add("blockStand", this.block.getStand());
        actualBlock.offer(Keys.FALLING_BLOCK_STATE, createBlockState());
        actualBlock.offer(Keys.FALL_TIME, Integer.MIN_VALUE);
        actualBlock.offer(Keys.CAN_DROP_AS_ITEM, false);
    }
    if (this.pickaxeStand == null) {
        this.pickaxeStand = (ArmorStand) this.world.createEntity(EntityTypes.ARMOR_STAND, getPickaxePos());
        ArmorStandData data = this.pickaxeStand.getOrCreate(ArmorStandData.class).get();
        data.set(data.basePlate().set(false));
        // data.set(data.marker().set(true));
        this.pickaxeStand.offer(data);
        this.pickaxeStand.offer(Keys.HAS_GRAVITY, false);
        this.pickaxeStand.tryOffer(Keys.INVISIBLE, true);
        this.pickaxeStand.setRotation(getPickaxeRot());
        this.pickaxeStand.offer(Keys.RIGHT_ARM_ROTATION, new Vector3d(-45, 0, 0));
        this.pickaxeStand.setItemInHand(HandTypes.MAIN_HAND, ItemStack.of(ItemTypes.DIAMOND_PICKAXE, 1));
        world.addEntityToTracker(this.pickaxeStand, this);
        this.tracker.add("toolStand", this.pickaxeStand);
    }
    return true;
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:31,代码来源:TurtleEntity.java


示例19: setStand

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
public void setStand(ArmorStand stand) {
    if (this.stand != null) {
        this.stand.remove();
    }
    this.stand = stand;
    if (this.entity != null) {
        this.entity.setVehicle(stand);
    }
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:10,代码来源:SupportiveArmorStand.java


示例20: createStand

import org.spongepowered.api.entity.living.ArmorStand; //导入依赖的package包/类
private static ArmorStand createStand(World world, Vector3d pos) {
    ArmorStand stand = (ArmorStand) world.createEntity(EntityTypes.ARMOR_STAND, pos);
    ArmorStandData data = stand.getOrCreate(ArmorStandData.class).get();
    data.set(data.small().set(true));
    data.set(data.basePlate().set(false));
    data.set(data.marker().set(true));
    stand.offer(data);
    stand.offer(Keys.HAS_GRAVITY, false);
    stand.tryOffer(Keys.INVISIBLE, true);
    return stand;
}
 
开发者ID:simon816,项目名称:Industrialization,代码行数:12,代码来源:ItemStackHolder.java



注:本文中的org.spongepowered.api.entity.living.ArmorStand类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java VisSplitPane类代码示例发布时间:2022-05-22
下一篇:
Java GlobalCoordinates类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap