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


Java ITurtleAccess类代码示例

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


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

示例1: update

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public void update(ITurtleAccess turtle, TurtleSide side)
{
	//CRMod.infoLog("chunky.update(): getUpgrade="+turtle.getUpgrade(side));
	if(turtle.getWorld().isRemote)//on Client getPeripheral doesn't work (CC1.63pr3)
		return;
	IPeripheral p = turtle.getPeripheral(side);
	if( p instanceof ChunkyPeripheral)
	{
		((ChunkyPeripheral) p).update();
	}
	else
	{
		if(p!=null)
			ChunkyPeripherals.logger.error("update called on a turtle without chunky module ( p is "+p.getClass().getName()+")");
		else
			ChunkyPeripherals.logger.error("update called on a turtle without chunky module ( p is null )");
	}
}
 
开发者ID:c-rizz,项目名称:ChunkyPeripherals,代码行数:20,代码来源:ChunkyUpgrade.java

示例2: useTool

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public TurtleCommandResult useTool(ITurtleAccess turtle, TurtleSide side, TurtleVerb verb, int direction)
{
	return TurtleCommandResult.failure();
	/*
	if(FMLCommonHandler.instance().getEffectiveSide()==Side.CLIENT)//on Client getPeripheral doesn't work (CC1.63pr3)
		return TurtleCommandResult.failure();
	
	if(verb==TurtleVerb.Dig)
	{
		IPeripheral p = turtle.getPeripheral(side);
		
		if(direction>1)//se la direzione non è su o giù
			direction = 2;
		ITurtleCommand dig = new MinyChunkyPeripheral.DigCommand(direction);
		
		return dig.execute(turtle);
	}
	else
	{
		return TurtleCommandResult.failure("Unsupported action");
	}
	*/
}
 
开发者ID:c-rizz,项目名称:ChunkyPeripherals,代码行数:25,代码来源:MinyChunkyUpgrade.java

示例3: PeripheralBarrel

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
public PeripheralBarrel(ITurtleAccess turtle, TurtleSide side) {
	this.turtle = turtle;
	this.side = side;
	NBTTagCompound tag = turtle.getUpgradeNBTData(side);
	if (tag.getInteger("maxSize") > 0)
		MAX_SIZE = tag.getInteger("maxSize");
	if (tag.getInteger("stackSize") > 0)
		STACK_SIZE = tag.getInteger("stackSize");
	CURRENT_USAGE = tag.getInteger("currentUsage");
	if (tag.getBoolean("isKnown"))
       {
           ITEM_TYPE_STORED = Item.getItemById(tag.getInteger("itemID"));
           ITEM_META_STORED = tag.getInteger("stackMeta");
       }
	checkUsageStats();
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:17,代码来源:PeripheralBarrel.java

示例4: update

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public void update(ITurtleAccess turtle, TurtleSide side) {
	if (!Config.enableRidableTurtle) {
		return;
	}
	World world = turtle.getWorld();
	if (!world.isRemote) {
		try {
			getEntity(turtle);
		} catch (Exception e) {
			EntityRidableTurtle ridableTurtle = new EntityRidableTurtle(world);
			ridableTurtle.setPosition(turtle.getPosition().posX + 0.5, turtle.getPosition().posY,
					turtle.getPosition().posZ + 0.5);
			ridableTurtle.setTurtle(turtle);
			world.spawnEntityInWorld(ridableTurtle);
		}
	}
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:19,代码来源:TurtleRidable.java

示例5: attackEntity

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
protected ArrayList<ItemStack> attackEntity(ITurtleAccess turtle, Entity entity) throws TurtleFailureAttack {
    final IInventory inv = turtle.getInventory();
    final int selected = turtle.getSelectedSlot();
    final ItemStack currStack = inv.getStackInSlot(selected);
    if (currStack == null || currStack.stackSize <= 0) {
        throw new TurtleFailureAttack("selected slot empty");
    }
    final EntityAnimal animal = (EntityAnimal) entity;
    if (animal.getGrowingAge() == 0 && !animal.isInLove() && animal.isBreedingItem(currStack)) {
        animal.setTarget(null); // remove anything they're following
        animal.func_146082_f(null); // set it in love
        --currStack.stackSize;
        if (currStack.stackSize == 0) {
            inv.setInventorySlotContents(selected, null);
        }
    }
    return null;
}
 
开发者ID:theoriginalbit,项目名称:MoarPeripherals,代码行数:20,代码来源:UpgradeFeeder.java

示例6: teleportTo

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@LuaFunction
@MultiReturn
public Object[] teleportTo(int x, int y, int z) {
    // look for the Turtle above
    final ITurtleAccess turtle = TurtleUtil.getITurtle(worldObj, xCoord, yCoord + 1, zCoord);
    // if there was a turtle
    if (turtle != null) {
        // make sure it can teleport there
        if (!worldObj.isAirBlock(x, y, z)) {
            return new Object[]{false, "Teleport failed"};
        }
        // check there is enough fuel to teleport
        int requiredFuel = requiredFuelInternal(turtle, x, y, z);
        if (requiredFuel > turtle.getFuelLevel()) {
            return new Object[]{false, "Not enough fuel"};
        }
        // consume the fuel and teleport the Turtle
        turtle.consumeFuel(requiredFuel);
        turtle.teleportTo(worldObj, x, y, z);
        // show teleport particles and play teleport sounds at both sides
        doTeleportFX(new ChunkCoordinates(x, y, z));
        return new Object[]{true};
    }
    // no turtle
    return new Object[]{false, "No Turtle found above the teleport"};
}
 
开发者ID:theoriginalbit,项目名称:MoarPeripherals,代码行数:27,代码来源:TileTurtleTeleport.java

示例7: WirelessChunkyPeripheral

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
public WirelessChunkyPeripheral(ITurtleAccess t, TurtleSide side)
{
	super(t);
	
	Class wirelessModemClass = null;
	ITurtleUpgrade turtleModemObject = (ITurtleUpgrade) CCReflectionHelper.runMainCCClassMethod("getTurtleUpgrade", 1);
	wirelessModemSubPeripheral = turtleModemObject.createPeripheral(t,side);
	
	methodsNumber = wirelessModemSubPeripheral.getMethodNames().length;
	
}
 
开发者ID:c-rizz,项目名称:ChunkyPeripherals,代码行数:12,代码来源:WirelessChunkyPeripheral.java

示例8: update

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public void update(ITurtleAccess turtle, TurtleSide side)
{
	//update the chunky part of the peripheral
	super.update(turtle,side);
	
	
	//do what dan does
	if(turtle.getWorld().isRemote)
		return;
	IPeripheral p = turtle.getPeripheral(side);
	if( p!=null && p instanceof WirelessChunkyPeripheral)
	{
		Object subPeripheral = ((WirelessChunkyPeripheral)p).getSubPeripheral();
		if((Boolean) CCReflectionHelper.invokeMethod(subPeripheral, true, "pollChanged"))
		{
			turtle.getUpgradeNBTData(side).setBoolean("active", (Boolean) CCReflectionHelper.invokeMethod(subPeripheral, true, "isActive"));
	        turtle.updateUpgradeNBTData(side);
		}
	}
	else
	{
		if(p!=null)
			ChunkyPeripherals.logger.error("update called on a turtle without wireless chunky module ( p is "+p.getClass().getName()+")");
		else
			ChunkyPeripherals.logger.error("update called on a turtle without wireless chunky module ( p is null )");
	}
}
 
开发者ID:c-rizz,项目名称:ChunkyPeripherals,代码行数:29,代码来源:WirelessChunkyUpgrade.java

示例9: getIcon

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public IIcon getIcon(ITurtleAccess turtle, TurtleSide side)
{
	if(side==TurtleSide.Left)
		return iconLeft;
	else
		return iconRight;
}
 
开发者ID:c-rizz,项目名称:ChunkyPeripherals,代码行数:9,代码来源:MinyChunkyUpgrade.java

示例10: onMessage

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public IMessage onMessage(SynthResponsePacket message, MessageContext ctx) {
	if (message.side == null)
		((TileEntitySpeaker) message.world.getTileEntity(message.x, message.y, message.z)).onSpeechCompletion(message.text, null);
	else
		try {
			ITurtleAccess turtle = ReflectionHelper.getTurtle(message.world.getTileEntity(message.x, message.y, message.z));
			((TileEntitySpeaker)turtle.getPeripheral(message.side)).onSpeechCompletion(message.text, null);
		} catch (Exception e) {
			e.printStackTrace();
		}
	return null;
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:14,代码来源:SynthResponsePacket.java

示例11: onMessage

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
@Override
public IMessage onMessage(AudioResponsePacket message, MessageContext ctx) {
	if (message.side == null)
		((TileEntitySpeaker) message.world.getTileEntity(message.x, message.y, message.z)).onSpeechCompletion(message.text, message.lang);
	else
		try {
			ITurtleAccess turtle = ReflectionHelper.getTurtle(message.world.getTileEntity(message.x, message.y, message.z));
			((TileEntitySpeaker)turtle.getPeripheral(message.side)).onSpeechCompletion(message.text, message.lang);
		} catch (Exception e) {
			e.printStackTrace();
		}
	return null;
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:14,代码来源:AudioResponsePacket.java

示例12: harvestBlock

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
public static List<ItemStack> harvestBlock(ITurtleAccess turtle, FakeTurtlePlayer player, int dir, ItemStack itemToUse) {
	int x = turtle.getPosition().posX+Facing.offsetsXForSide[dir];
	int y = turtle.getPosition().posY+Facing.offsetsYForSide[dir];
	int z = turtle.getPosition().posZ+Facing.offsetsZForSide[dir];
	if (!turtle.getWorld().isAirBlock(x,y,z)) {
		Block block = turtle.getWorld().getBlock(x,y,z);
		player.setCurrentItemOrArmor(0, itemToUse);
		if (block.getBlockHardness(turtle.getWorld(), x,y,z) >= 0 && block.canHarvestBlock(player, block.getDamageValue(turtle.getWorld(),x,y,z))) {
			List<ItemStack> items = block.getDrops(turtle.getWorld(),x,y,z, block.getDamageValue(turtle.getWorld(),x,y,z), 0);
			turtle.getWorld().setBlockToAir(x,y,z);
			return items;
		}
	}
	return null;
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:16,代码来源:TurtleUtil.java

示例13: getEntitiesNearTurtle

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
public static List<Entity> getEntitiesNearTurtle(ITurtleAccess turtle, FakeTurtlePlayer player, int dir) {
	int x = turtle.getPosition().posX+Facing.offsetsXForSide[dir];
	int y = turtle.getPosition().posY+Facing.offsetsYForSide[dir];
	int z = turtle.getPosition().posZ+Facing.offsetsZForSide[dir];
	AxisAlignedBB box = AxisAlignedBB.getBoundingBox(x, y, z, x+1.0D, y+1.0D, z+1.0D);
	return turtle.getWorld().getEntitiesWithinAABBExcludingEntity(player, box);
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:8,代码来源:TurtleUtil.java

示例14: addToInv

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
public static void addToInv(ITurtleAccess turtle, ItemStack stack) {
	boolean drop = true;
	IInventory inv = turtle.getInventory();
	ChunkCoordinates coords = turtle.getPosition();
	for (int i = 0; i < inv.getSizeInventory(); i++) {
		ItemStack currentStack = inv.getStackInSlot(i);
		if (currentStack == null) {
			inv.setInventorySlotContents(i, stack);
			drop = false;
			break;
		}
		if (currentStack.isStackable() && currentStack.isItemEqual(stack)) {
			int space = currentStack.getMaxStackSize() - currentStack.stackSize;
			if (stack.stackSize > space) {
				currentStack.stackSize = currentStack.getMaxStackSize();
				stack.stackSize -= space;
				drop = true;
			} else {
				currentStack.stackSize += stack.stackSize;
				stack.stackSize = 0;
				drop = false;
				break;
			}
		}
	}
	if (drop) {
		int dir = turtle.getDirection();
		turtle.getWorld().spawnEntityInWorld(new EntityItem(turtle.getWorld(), coords.posX+Facing.offsetsXForSide[dir], coords.posY+Facing.offsetsYForSide[dir]+1, coords.posZ+Facing.offsetsZForSide[dir], stack.copy()));
	}
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:31,代码来源:TurtleUtil.java

示例15: getPeripheral

import dan200.computercraft.api.turtle.ITurtleAccess; //导入依赖的package包/类
public static <T> T getPeripheral(ITurtleAccess turtle, Class<T> clazz) {
	for (TurtleSide side : EnumSet.allOf(TurtleSide.class)) {
		IPeripheral peripheral = turtle.getPeripheral(side);
		if (peripheral != null && clazz.isAssignableFrom(peripheral.getClass())) 
			return (T)peripheral;
	}
	
	return null;
}
 
开发者ID:austinv11,项目名称:PeripheralsPlusPlus,代码行数:10,代码来源:TurtleUtil.java


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