当前位置: 首页>>代码示例>>Java>>正文


Java RabbitType类代码示例

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


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

示例1: tick

import org.spongepowered.api.data.type.RabbitType; //导入依赖的package包/类
public void tick() {
		World w = loc.getExtent();
		Optional<Chunk> chunk = w.getChunkAtBlock(loc.getBlockPosition()); 
		if (le == null) {
			if (chunk.isPresent() && chunk.get().isLoaded()) {
				//first try to link the entity again:
				Collection<Entity> ents = chunk.get().getEntities();
				for (Entity ent : ents) {
					if (( ent.isLoaded() && ent.getType().equals(npcType) && (ent.getUniqueId().equals(lastKnown) || 
						( ent.getLocation().getExtent().equals(loc.getExtent()) && ent.getLocation().getPosition().distanceSquared(loc.getPosition())<1.5) ) ) &&
						( !VillagerShops.isNPCused(ent) &&
						  displayName.equals(ent.get(Keys.DISPLAY_NAME).orElse(null))))
					{	//check if npc already belongs to a different shop
							le = ent; le.setLocationAndRotation(loc, rot); break;
					}
				}
				if (le == null) { //unable to restore
//					Optional<Entity> ent = w.createEntity(npcType, loc.getPosition());
					Entity shop = w.createEntity(npcType, loc.getPosition());
//				    if (ent.isPresent()) {
//				        Entity shop = ent.get();
				        shop.offer(Keys.AI_ENABLED, false);
				        shop.offer(Keys.IS_SILENT, true);
				        
				        //setting variant. super consistent ;D
				        if (variant != null)
					        try {
						        if (npcType.equals(EntityTypes.HORSE)) {
						        	shop.tryOffer(Keys.HORSE_COLOR, (HorseColor)variant);	
		//							((Horse)shop).variant().set((HorseVariant)variant);
								} else if (npcType.equals(EntityTypes.OCELOT)) {
									shop.tryOffer(Keys.OCELOT_TYPE, (OcelotType)variant);
								} else if (npcType.equals(EntityTypes.VILLAGER)) {
									shop.tryOffer(Keys.CAREER, (Career)variant);
								} else if (npcType.equals(EntityTypes.LLAMA)) {
									shop.tryOffer(Keys.LLAMA_VARIANT, (LlamaVariant)variant);
								} else if (npcType.equals(EntityTypes.RABBIT)) {
									shop.tryOffer(Keys.RABBIT_TYPE, (RabbitType)variant);
								} else if (npcType.equals(EntityTypes.PARROT)) {
									shop.tryOffer(Keys.PARROT_VARIANT, (ParrotVariant)variant);
								}
					        } catch (Exception e) { System.err.println("Variant no longer suported! Did the EntityType change?"); }
				        
				        shop.offer(Keys.DISPLAY_NAME, displayName);
				        
				        if (w.spawnEntity(shop)) {
				        	lastKnown = shop.getUniqueId();
				        }
//				    }
				}
			}
		} else if (le != null) {
			if (!le.isLoaded() || !chunk.isPresent() || !chunk.get().isLoaded()) {
				le = null;	//allowing minecraft to free the resources
			} else  if (le.isRemoved() || le.get(Keys.HEALTH).orElse(1.0)<=0) { 
				le = null;
			} else {
				le.setLocationAndRotation(loc, rot);
				if (le instanceof Living) {
					if ((++lookAroundTicks>15 && VillagerShops.rng.nextInt(10) == 0) || lookAroundTicks>100) {
						Living mo = (Living)le;
						lookAroundTicks = 0;
						mo.setHeadRotation(new Vector3d(VillagerShops.rng.nextFloat()*30-14, rot.getY()+VillagerShops.rng.nextFloat()*60-30, 0.0));
					}
				}
			}
		}
	}
 
开发者ID:DosMike,项目名称:VillagerShops,代码行数:69,代码来源:NPCguard.java

示例2: of

import org.spongepowered.api.data.type.RabbitType; //导入依赖的package包/类
public static RabbitType of(Rabbit.Type type) {
    return CONVERTER.convert(type);
}
 
开发者ID:LapisBlue,项目名称:Pore,代码行数:4,代码来源:RabbitConverter.java


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