From 0d91c5360dd942aed5c5ddb7c52df0fd041969a1 Mon Sep 17 00:00:00 2001 From: Thiakil Date: Sun, 2 Oct 2016 14:19:46 +0800 Subject: [PATCH 01/21] Port getAllStacks from Inventory driver --- .../traits/WorldInventoryAnalytics.scala | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala b/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala index 66c78847d..5e3ee07e7 100644 --- a/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala +++ b/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala @@ -76,6 +76,22 @@ trait WorldInventoryAnalytics extends WorldAware with SideRestricted with Networ } else result(Unit, "not enabled in config") + @Callback(doc = """function(side:number):table -- Get a description of all stacks in the inventory on the specified side of the device.""") + def getAllStacks(context: Context, args: Arguments): Array[AnyRef] = if (Settings.get.allowItemStackInspection) { + val facing = checkSideForAction(args, 0) + withInventory(facing, inventory => { + var stacks = new Array[AnyRef](inventory.getSizeInventory) + for(i <- 0 to inventory.getSizeInventory - 1){ + stacks(i) = inventory.getStackInSlot(i) + if (stacks(i) == null) { + stacks(i) = scala.collection.mutable.Map.empty[AnyRef, AnyRef] + } + } + result(stacks) + }) + } + else result(Unit, "not enabled in config") + @Callback(doc = """function(side:number, slot:number, dbAddress:string, dbSlot:number):boolean -- Store an item stack description in the specified slot of the database with the specified address.""") def store(context: Context, args: Arguments): Array[AnyRef] = { val facing = checkSideForAction(args, 0) From 37363127e8ed72499682651d44903cab77b036b8 Mon Sep 17 00:00:00 2001 From: Thiakil Date: Sun, 2 Oct 2016 14:23:15 +0800 Subject: [PATCH 02/21] Port getInventoryName from inventory driver --- .../server/component/traits/WorldInventoryAnalytics.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala b/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala index 5e3ee07e7..73fdc6a9f 100644 --- a/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala +++ b/src/main/scala/li/cil/oc/server/component/traits/WorldInventoryAnalytics.scala @@ -92,6 +92,12 @@ trait WorldInventoryAnalytics extends WorldAware with SideRestricted with Networ } else result(Unit, "not enabled in config") + @Callback(doc = """function(side:number):string -- Get the the name of the inventory on the specified side of the device.""") + def getInventoryName(context: Context, args: Arguments): Array[AnyRef] = { + val facing = checkSideForAction(args, 0) + withInventory(facing, inventory => result(inventory.getName())) + } + @Callback(doc = """function(side:number, slot:number, dbAddress:string, dbSlot:number):boolean -- Store an item stack description in the specified slot of the database with the specified address.""") def store(context: Context, args: Arguments): Array[AnyRef] = { val facing = checkSideForAction(args, 0) From 1273968142e3614457c6c2a0e5649e9da43cabe7 Mon Sep 17 00:00:00 2001 From: Xander Date: Wed, 19 Apr 2017 19:18:51 +0800 Subject: [PATCH 03/21] convert to userdata --- .../oc/api/prefab/ItemStackArrayValue.java | 136 ++++++++++++++++++ .../traits/WorldInventoryAnalytics.scala | 32 +++-- 2 files changed, 157 insertions(+), 11 deletions(-) create mode 100644 src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java diff --git a/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java b/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java new file mode 100644 index 000000000..f44353527 --- /dev/null +++ b/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java @@ -0,0 +1,136 @@ +package li.cil.oc.api.prefab; + +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +import java.util.HashMap; +import java.util.TreeMap; + +public class ItemStackArrayValue extends AbstractValue { + + private ItemStack[] array = null; + private int iteratorIndex; + + private static final byte TAGLIST_ID = (new NBTTagList()).getId(); + private static final byte COMPOUND_ID = (new NBTTagCompound()).getId(); + private static final String ARRAY_KEY = "Array"; + private static final String INDEX_KEY = "Index"; + + private static final HashMap emptyMap = new HashMap(); + + public ItemStackArrayValue(ItemStack[] arr){ + if (arr != null){ + this.array = new ItemStack[arr.length]; + for (int i=0; i< arr.length; i++){ + this.array[i] = arr[i] != null ? arr[i].copy() : null; + } + } + this.iteratorIndex = 0; + } + + public ItemStackArrayValue(){ + this(null); + } + + @Override + public Object[] call(Context context, Arguments arguments) { + if (this.array == null) + return null; + if (this.iteratorIndex >= this.array.length) + return null; + int index = this.iteratorIndex++; + if (this.array[index] == null)//TODO 1.11 change to ItemStack.EMPTY? + return new Object[]{ emptyMap }; + return new Object[]{ this.array[index] != null ? this.array[index] : emptyMap }; + } + + @Override + public Object apply(Context context, Arguments arguments) { + if (arguments.count() == 0 || this.array == null) + return null; + if (arguments.isInteger(0)){//index access + int luaIndex = arguments.checkInteger(0); + if (luaIndex > this.array.length || luaIndex < 1){ + return null; + } + return this.array[luaIndex-1]; + } + if (arguments.isString(0)){ + String arg = arguments.checkString(0); + if (arg.equals("n")){ + return this.array.length; + } + } + return null; + } + + @Override + public void load(NBTTagCompound nbt) { + if (nbt.hasKey(ARRAY_KEY, TAGLIST_ID)){ + NBTTagList tagList = nbt.getTagList(ARRAY_KEY,COMPOUND_ID); + this.array = new ItemStack[tagList.tagCount()]; + for (int i = 0; i < tagList.tagCount(); ++i){ + NBTTagCompound el = tagList.getCompoundTagAt(i); + if (el.hasNoTags()) + this.array[i] = null;//TODO 1.11 change to ItemStack.EMPTY? + else + this.array[i] = ItemStack.loadItemStackFromNBT(el); + } + } else { + this.array = null; + } + this.iteratorIndex = nbt.getInteger(INDEX_KEY); + } + + @Override + public void save(NBTTagCompound nbt) { + + NBTTagCompound nullnbt = new NBTTagCompound(); + + if (this.array != null) { + NBTTagList nbttaglist = new NBTTagList(); + for (ItemStack stack : this.array) { + if (stack != null) { + NBTBase nbttagcompound = stack.serializeNBT(); + nbttaglist.appendTag(nbttagcompound); + } else { + nbttaglist.appendTag(nullnbt); + } + } + + nbt.setTag(ARRAY_KEY, nbttaglist); + } + + nbt.setInteger(INDEX_KEY, iteratorIndex); + } + + @Callback(doc="function():nil -- Reset the iterator index so that the next call will return the first element.") + public Object[] reset(Context context, Arguments arguments) throws Exception { + this.iteratorIndex = 0; + return null; + } + + @Callback(doc="function():number -- Returns the number of elements in the this.array.") + public Object[] count(Context context, Arguments arguments) throws Exception { + return new Object[] { this.array != null ? this.array.length : 0 }; + } + + @Callback(doc="function():table -- Returns ALL the stack in the this.array. Memory intensive.") + public Object[] getAll(Context context, Arguments arguments) throws Exception { + TreeMap map = new TreeMap(); + for (int i=0; i { - var stacks = new Array[AnyRef](inventory.getSizeInventory) - for(i <- 0 to inventory.getSizeInventory - 1){ + val stacks = new Array[ItemStack](inventory.getSlots) + for(i <- 0 until inventory.getSlots){ stacks(i) = inventory.getStackInSlot(i) - if (stacks(i) == null) { - stacks(i) = scala.collection.mutable.Map.empty[AnyRef, AnyRef] - } } - result(stacks) + result(new ItemStackArrayValue(stacks)) }) } else result(Unit, "not enabled in config") @Callback(doc = """function(side:number):string -- Get the the name of the inventory on the specified side of the device.""") - def getInventoryName(context: Context, args: Arguments): Array[AnyRef] = { + def getInventoryName(context: Context, args: Arguments): Array[AnyRef] = if (Settings.get.allowItemStackInspection) { val facing = checkSideForAction(args, 0) - withInventory(facing, inventory => result(inventory.getName())) + def blockAt(position: BlockPosition): Option[Block] = position.world match { + case Some(world) if world.blockExists(position) => world.getBlock(position) match { + case block: Block => Some(block) + case _ => None + } + case _ => None + } + withInventory(facing, inventory => blockAt(position.offset(facing)) match { + case Some(block) => result(block.getRegistryName) + case _ => result(Unit, "Unknown") + }) } + else result(Unit, "not enabled in config") @Callback(doc = """function(side:number, slot:number, dbAddress:string, dbSlot:number):boolean -- Store an item stack description in the specified slot of the database with the specified address.""") def store(context: Context, args: Arguments): Array[AnyRef] = { From dd084247bea1abaa9819853966a76f45ddd1bdee Mon Sep 17 00:00:00 2001 From: Xander Date: Sat, 22 Apr 2017 10:21:57 +0800 Subject: [PATCH 04/21] Pass Value objects through Registry.convert before back to Lua --- .../scala/li/cil/oc/server/machine/luac/UserdataAPI.scala | 5 +++-- .../scala/li/cil/oc/server/machine/luaj/UserdataAPI.scala | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/machine/luac/UserdataAPI.scala b/src/main/scala/li/cil/oc/server/machine/luac/UserdataAPI.scala index 168a19da1..3d24fe65e 100644 --- a/src/main/scala/li/cil/oc/server/machine/luac/UserdataAPI.scala +++ b/src/main/scala/li/cil/oc/server/machine/luac/UserdataAPI.scala @@ -8,6 +8,7 @@ import java.io.DataOutputStream import li.cil.oc.OpenComputers import li.cil.oc.api.Persistable import li.cil.oc.api.machine.Value +import li.cil.oc.server.driver.Registry import li.cil.oc.server.machine.ArgumentsImpl import li.cil.oc.util.ExtendedLuaState.extendLuaState import net.minecraft.nbt.CompressedStreamTools @@ -56,7 +57,7 @@ class UserdataAPI(owner: NativeLuaArchitecture) extends NativeLuaAPI(owner) { lua.pushScalaFunction(lua => { val value = lua.toJavaObjectRaw(1).asInstanceOf[Value] val args = lua.toSimpleJavaObjects(2) - owner.invoke(() => Array(value.apply(machine, new ArgumentsImpl(args)))) + owner.invoke(() => Registry.convert(Array(value.apply(machine, new ArgumentsImpl(args))))) }) lua.setField(-2, "apply") @@ -73,7 +74,7 @@ class UserdataAPI(owner: NativeLuaArchitecture) extends NativeLuaAPI(owner) { lua.pushScalaFunction(lua => { val value = lua.toJavaObjectRaw(1).asInstanceOf[Value] val args = lua.toSimpleJavaObjects(2) - owner.invoke(() => value.call(machine, new ArgumentsImpl(args))) + owner.invoke(() => Registry.convert(value.call(machine, new ArgumentsImpl(args)))) }) lua.setField(-2, "call") diff --git a/src/main/scala/li/cil/oc/server/machine/luaj/UserdataAPI.scala b/src/main/scala/li/cil/oc/server/machine/luaj/UserdataAPI.scala index 6ada183b2..336fc4eea 100644 --- a/src/main/scala/li/cil/oc/server/machine/luaj/UserdataAPI.scala +++ b/src/main/scala/li/cil/oc/server/machine/luaj/UserdataAPI.scala @@ -2,6 +2,7 @@ package li.cil.oc.server.machine.luaj import li.cil.oc.OpenComputers import li.cil.oc.api.machine.Value +import li.cil.oc.server.driver.Registry import li.cil.oc.server.machine.ArgumentsImpl import li.cil.oc.util.ScalaClosure._ import li.cil.repack.org.luaj.vm2.LuaValue @@ -16,7 +17,7 @@ class UserdataAPI(owner: LuaJLuaArchitecture) extends LuaJAPI(owner) { userdata.set("apply", (args: Varargs) => { val value = args.checkuserdata(1, classOf[Value]).asInstanceOf[Value] val params = toSimpleJavaObjects(args, 2) - owner.invoke(() => Array(value.apply(machine, new ArgumentsImpl(params)))) + owner.invoke(() => Registry.convert(Array(value.apply(machine, new ArgumentsImpl(params))))) }) userdata.set("unapply", (args: Varargs) => { @@ -31,7 +32,7 @@ class UserdataAPI(owner: LuaJLuaArchitecture) extends LuaJAPI(owner) { userdata.set("call", (args: Varargs) => { val value = args.checkuserdata(1, classOf[Value]).asInstanceOf[Value] val params = toSimpleJavaObjects(args, 2) - owner.invoke(() => value.call(machine, new ArgumentsImpl(params))) + owner.invoke(() => Registry.convert(value.call(machine, new ArgumentsImpl(params)))) }) userdata.set("dispose", (args: Varargs) => { From 7c3e3663cb0525d088136e550aaa68a69eeb20ad Mon Sep 17 00:00:00 2001 From: 45210 <452104285@qq.com> Date: Wed, 24 May 2017 14:26:51 +0800 Subject: [PATCH 05/21] Adding zh_CN localization of OpenComputers Manual,and fix of infinite loop in calculating nextY --- gradle.properties | 0 .../opencomputers/doc/zh_CN/block/_robot.md | 11 +++ .../doc/zh_CN/block/accessPoint.md | 13 +++ .../opencomputers/doc/zh_CN/block/adapter.md | 8 ++ .../doc/zh_CN/block/assembler.md | 23 +++++ .../opencomputers/doc/zh_CN/block/cable.md | 10 ++ .../doc/zh_CN/block/capacitor.md | 13 +++ .../opencomputers/doc/zh_CN/block/case1.md | 35 +++++++ .../opencomputers/doc/zh_CN/block/case2.md | 1 + .../opencomputers/doc/zh_CN/block/case3.md | 1 + .../doc/zh_CN/block/caseCreative.md | 1 + .../doc/zh_CN/block/chameliumBlock.md | 8 ++ .../opencomputers/doc/zh_CN/block/charger.md | 13 +++ .../doc/zh_CN/block/disassembler.md | 7 ++ .../doc/zh_CN/block/diskDrive.md | 15 +++ .../opencomputers/doc/zh_CN/block/geolyzer.md | 5 + .../doc/zh_CN/block/hologram1.md | 11 +++ .../doc/zh_CN/block/hologram2.md | 1 + .../opencomputers/doc/zh_CN/block/index.md | 48 +++++++++ .../opencomputers/doc/zh_CN/block/keyboard.md | 5 + .../doc/zh_CN/block/microcontroller.md | 8 ++ .../doc/zh_CN/block/motionSensor.md | 7 ++ .../doc/zh_CN/block/netSplitter.md | 9 ++ .../doc/zh_CN/block/powerConverter.md | 8 ++ .../doc/zh_CN/block/powerDistributor.md | 6 ++ .../opencomputers/doc/zh_CN/block/print.md | 11 +++ .../opencomputers/doc/zh_CN/block/printer.md | 18 ++++ .../opencomputers/doc/zh_CN/block/rack.md | 6 ++ .../opencomputers/doc/zh_CN/block/raid.md | 15 +++ .../opencomputers/doc/zh_CN/block/redstone.md | 12 +++ .../opencomputers/doc/zh_CN/block/relay.md | 17 ++++ .../opencomputers/doc/zh_CN/block/robot.md | 9 ++ .../opencomputers/doc/zh_CN/block/screen1.md | 12 +++ .../opencomputers/doc/zh_CN/block/screen2.md | 1 + .../opencomputers/doc/zh_CN/block/screen3.md | 1 + .../opencomputers/doc/zh_CN/block/switch.md | 13 +++ .../doc/zh_CN/block/transposer.md | 9 ++ .../opencomputers/doc/zh_CN/block/waypoint.md | 6 ++ .../doc/zh_CN/general/computer.md | 9 ++ .../doc/zh_CN/general/example.md | 69 +++++++++++++ .../opencomputers/doc/zh_CN/general/lua.md | 15 +++ .../opencomputers/doc/zh_CN/general/openOS.md | 11 +++ .../doc/zh_CN/general/quickstart.md | 59 +++++++++++ .../assets/opencomputers/doc/zh_CN/index.md | 47 +++++++++ .../doc/zh_CN/item/abstractBusCard.md | 5 + .../opencomputers/doc/zh_CN/item/acid.md | 9 ++ .../opencomputers/doc/zh_CN/item/alu.md | 5 + .../opencomputers/doc/zh_CN/item/analyzer.md | 7 ++ .../doc/zh_CN/item/angelUpgrade.md | 5 + .../opencomputers/doc/zh_CN/item/apu1.md | 5 + .../opencomputers/doc/zh_CN/item/apu2.md | 1 + .../opencomputers/doc/zh_CN/item/arrowKeys.md | 5 + .../doc/zh_CN/item/batteryUpgrade1.md | 5 + .../doc/zh_CN/item/batteryUpgrade2.md | 1 + .../doc/zh_CN/item/batteryUpgrade3.md | 1 + .../doc/zh_CN/item/buttonGroup.md | 4 + .../opencomputers/doc/zh_CN/item/card.md | 5 + .../doc/zh_CN/item/cardContainer1.md | 5 + .../doc/zh_CN/item/cardContainer2.md | 1 + .../doc/zh_CN/item/cardContainer3.md | 1 + .../opencomputers/doc/zh_CN/item/chamelium.md | 9 ++ .../opencomputers/doc/zh_CN/item/chip1.md | 5 + .../opencomputers/doc/zh_CN/item/chip2.md | 1 + .../opencomputers/doc/zh_CN/item/chip3.md | 1 + .../doc/zh_CN/item/chunkloaderUpgrade.md | 7 ++ .../doc/zh_CN/item/circuitBoard.md | 5 + .../doc/zh_CN/item/componentBus1.md | 10 ++ .../doc/zh_CN/item/componentBus2.md | 1 + .../doc/zh_CN/item/componentBus3.md | 1 + .../doc/zh_CN/item/controlUnit.md | 5 + .../opencomputers/doc/zh_CN/item/cpu1.md | 14 +++ .../opencomputers/doc/zh_CN/item/cpu2.md | 1 + .../opencomputers/doc/zh_CN/item/cpu3.md | 1 + .../doc/zh_CN/item/craftingUpgrade.md | 5 + .../doc/zh_CN/item/cuttingWire.md | 5 + .../opencomputers/doc/zh_CN/item/dataCard1.md | 7 ++ .../opencomputers/doc/zh_CN/item/dataCard2.md | 1 + .../opencomputers/doc/zh_CN/item/dataCard3.md | 1 + .../doc/zh_CN/item/databaseUpgrade1.md | 10 ++ .../doc/zh_CN/item/databaseUpgrade2.md | 1 + .../doc/zh_CN/item/databaseUpgrade3.md | 1 + .../opencomputers/doc/zh_CN/item/debugCard.md | 9 ++ .../opencomputers/doc/zh_CN/item/disk.md | 5 + .../doc/zh_CN/item/diskDriveMountable.md | 5 + .../opencomputers/doc/zh_CN/item/drone.md | 5 + .../doc/zh_CN/item/droneCase1.md | 33 +++++++ .../doc/zh_CN/item/droneCase2.md | 1 + .../doc/zh_CN/item/droneCaseCreative.md | 1 + .../opencomputers/doc/zh_CN/item/eeprom.md | 6 ++ .../doc/zh_CN/item/experienceUpgrade.md | 9 ++ .../opencomputers/doc/zh_CN/item/floppy.md | 5 + .../doc/zh_CN/item/generatorUpgrade.md | 10 ++ .../doc/zh_CN/item/graphicsCard1.md | 5 + .../doc/zh_CN/item/graphicsCard2.md | 1 + .../doc/zh_CN/item/graphicsCard3.md | 1 + .../opencomputers/doc/zh_CN/item/hdd1.md | 5 + .../opencomputers/doc/zh_CN/item/hdd2.md | 1 + .../opencomputers/doc/zh_CN/item/hdd3.md | 1 + .../doc/zh_CN/item/hoverBoots.md | 9 ++ .../doc/zh_CN/item/hoverUpgrade1.md | 16 +++ .../doc/zh_CN/item/hoverUpgrade2.md | 1 + .../opencomputers/doc/zh_CN/item/index.md | 97 +++++++++++++++++++ .../doc/zh_CN/item/inkCartridge.md | 5 + .../doc/zh_CN/item/inkCartridgeEmpty.md | 1 + .../doc/zh_CN/item/internetCard.md | 7 ++ .../opencomputers/doc/zh_CN/item/interweb.md | 5 + .../zh_CN/item/inventoryControllerUpgrade.md | 9 ++ .../doc/zh_CN/item/inventoryUpgrade.md | 7 ++ .../opencomputers/doc/zh_CN/item/lanCard.md | 5 + .../doc/zh_CN/item/leashUpgrade.md | 5 + .../doc/zh_CN/item/linkedCard.md | 5 + .../opencomputers/doc/zh_CN/item/manual.md | 17 ++++ .../opencomputers/doc/zh_CN/item/mfu.md | 7 ++ .../doc/zh_CN/item/microcontrollerCase1.md | 31 ++++++ .../doc/zh_CN/item/microcontrollerCase2.md | 1 + .../zh_CN/item/microcontrollerCaseCreative.md | 1 + .../doc/zh_CN/item/nanomachines.md | 34 +++++++ .../doc/zh_CN/item/navigationUpgrade.md | 9 ++ .../opencomputers/doc/zh_CN/item/numPad.md | 5 + .../doc/zh_CN/item/pistonUpgrade.md | 7 ++ .../doc/zh_CN/item/printedCircuitBoard.md | 5 + .../opencomputers/doc/zh_CN/item/ram1.md | 17 ++++ .../opencomputers/doc/zh_CN/item/ram2.md | 1 + .../opencomputers/doc/zh_CN/item/ram3.md | 1 + .../opencomputers/doc/zh_CN/item/ram4.md | 1 + .../opencomputers/doc/zh_CN/item/ram5.md | 1 + .../opencomputers/doc/zh_CN/item/ram6.md | 1 + .../doc/zh_CN/item/rawCircuitBoard.md | 5 + .../doc/zh_CN/item/redstoneCard1.md | 9 ++ .../doc/zh_CN/item/redstoneCard2.md | 1 + .../opencomputers/doc/zh_CN/item/server1.md | 39 ++++++++ .../opencomputers/doc/zh_CN/item/server2.md | 1 + .../opencomputers/doc/zh_CN/item/server3.md | 1 + .../doc/zh_CN/item/serverCreative.md | 1 + .../doc/zh_CN/item/signUpgrade.md | 5 + .../doc/zh_CN/item/solarGeneratorUpgrade.md | 5 + .../opencomputers/doc/zh_CN/item/tablet.md | 13 +++ .../doc/zh_CN/item/tabletCase1.md | 39 ++++++++ .../doc/zh_CN/item/tabletCase2.md | 1 + .../doc/zh_CN/item/tabletCaseCreative.md | 1 + .../doc/zh_CN/item/tankControllerUpgrade.md | 9 ++ .../doc/zh_CN/item/tankUpgrade.md | 5 + .../opencomputers/doc/zh_CN/item/terminal.md | 9 ++ .../doc/zh_CN/item/terminalServer.md | 5 + .../doc/zh_CN/item/texturePicker.md | 5 + .../doc/zh_CN/item/tractorBeamUpgrade.md | 5 + .../doc/zh_CN/item/tradingUpgrade.md | 5 + .../doc/zh_CN/item/transistor.md | 5 + .../doc/zh_CN/item/upgradeContainer1.md | 5 + .../doc/zh_CN/item/upgradeContainer2.md | 1 + .../doc/zh_CN/item/upgradeContainer3.md | 1 + .../opencomputers/doc/zh_CN/item/wlanCard.md | 7 ++ .../doc/zh_CN/item/worldSensorCard.md | 5 + .../opencomputers/doc/zh_CN/item/wrench.md | 5 + .../opencomputers/doc/zh_CN/无效文件.txt | 13 +++ .../scala/li/cil/oc/client/gui/Manual.scala | 2 +- .../markdown/segment/BasicTextSegment.scala | 10 +- 157 files changed, 1394 insertions(+), 2 deletions(-) create mode 100644 gradle.properties create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/_robot.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/accessPoint.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/adapter.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/assembler.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/cable.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/capacitor.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/case1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/case2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/case3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/caseCreative.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/chameliumBlock.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/charger.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/disassembler.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/diskDrive.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/geolyzer.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/keyboard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/microcontroller.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/motionSensor.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/netSplitter.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/powerConverter.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/powerDistributor.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/rack.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/raid.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/redstone.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/robot.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/screen2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/screen3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/switch.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/transposer.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/general/computer.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/general/example.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/general/lua.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/general/openOS.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/index.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/abstractBusCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/acid.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/alu.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/analyzer.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/angelUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/apu1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/apu2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/arrowKeys.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/buttonGroup.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/card.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/chamelium.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/chip1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/chip2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/chip3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/chunkloaderUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/circuitBoard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/controlUnit.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/craftingUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/cuttingWire.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/debugCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/disk.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/diskDriveMountable.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/drone.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCaseCreative.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/eeprom.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/experienceUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/floppy.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/generatorUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridge.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridgeEmpty.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/internetCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/interweb.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryControllerUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/lanCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/leashUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/linkedCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/manual.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCaseCreative.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/nanomachines.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/navigationUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/numPad.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/pistonUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/printedCircuitBoard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/ram1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/ram2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/ram3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/ram4.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/ram5.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/ram6.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/rawCircuitBoard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/server1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/server2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/server3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/serverCreative.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/signUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/solarGeneratorUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCaseCreative.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tankControllerUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tankUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/terminalServer.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/texturePicker.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tractorBeamUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/tradingUpgrade.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/transistor.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer1.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer2.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer3.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/worldSensorCard.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/item/wrench.md create mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/_robot.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/_robot.md new file mode 100644 index 000000000..32434c842 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/_robot.md @@ -0,0 +1,11 @@ +# Robot +![His name was Tobor.](block:OpenComputers:robot) +和电脑不同 ,机器人可以如同实体那样在地图上移动,但机器人无法和外界组件交互,但!如果要和电脑或者其他机器人通讯,请安装 [无线网卡](../item/wlanCard.md),或者是通过[红石卡](../item/redstoneCard1.md)收发红石信号建立底层的协议 + +把[任意机箱](case1.md)放进[组装机](assembler.md)就可以制作机器人. +高级的机箱由于有更高级的[CPU](../item/cpu1.md),可以制造更复杂的机器人. 机器人的复杂度 (显示在 [组装机](assembler.md)GUI) 由槽内安装的组件和升级决定; +高级组件将会大大增加复杂度. 太复杂的情况下, 组装机会选择罢工 +多种升级可以扩展机器人的能力, 包括 [物品栏升级](../item/inventoryUpgrade.md) , [物品栏控制升级](../item/inventoryControllerUpgrade.md) , [储罐升级](../item/tankUpgrade.md), +[导航升级](../item/navigationUpgrade.md)等等. [升级](../item/upgradeContainer1.md) 和 [卡](../item/cardContainer1.md) 可以被热插拔哦 +[软驱](diskDrive.md) 可以被作为机器人的组件,允许插入[软盘](../item/floppy.md)来安装openOS,当然你可以在组装的时候就丢一块安好系统的硬盘进去。 + \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/accessPoint.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/accessPoint.md new file mode 100644 index 000000000..20589481a --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/accessPoint.md @@ -0,0 +1,13 @@ +# 接入点 + +![AAA](oredict:oc:accessPoint) + +*本方块是过时的,将会在未来版本被移除 请换用 [中继器](relay.md) 避免丢失 + +The access point is the wireless version of the [switch](switch.md). It can be used to separate subnetworks so that machines in them will not see [components](../general/computer.md) in other networks, while still allowing to send network messages to the machines in other networks. + +In addition to that, this block can act as a repeater: it can re-send wired messages as wired messages to other devices; or wireless messages as wired or wireless messages. + +[Switches](switch.md) and access point do *not* keep track of which packets they relayed recently, so avoid cycles in your network or you may receive the same packet multiple times. Due to the limited buffer size of switches, packet loss can occur when trying to send network messages too frequently. You can upgrade your switches and access points to increase the speed at which they relay messages, as well as their internal message queue size. + +Packets are only re-sent a certain number of times, so chaining an arbitrary number of [switches](switch.md) or access points is not possible. By default, a packet will be re-sent up to five times. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/adapter.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/adapter.md new file mode 100644 index 000000000..a7ed7dd91 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/adapter.md @@ -0,0 +1,8 @@ +# 适配器 + +![Now with 100% more everything.](oredict:oc:adapter) + +允许 [电脑](../general/computer.md) 与原版和其他mod的方块交互. 相邻的支持方块将会在连接适配器的 [电脑](../general/computer.md) 显示 + +适配器还有多种选择器升级.比如, the [物品控制器升级](../item/inventoryControllerUpgrade.md) 允许电脑从相邻适配器的方块中获取更详细的物品信息, 就像这个升级呗安装在设备里面一样 (比如[机器人](robot.md) or [无人机](../item/drone.md)), and a [储罐控制器升级](../item/tankControllerUpgrade.md) provides similar functionality for fluid tanks next to the adapter. +你还可以安装[MFU](../item/mfu.md) 来与更远的方块交互 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/assembler.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/assembler.md new file mode 100644 index 000000000..4ee32ca0f --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/assembler.md @@ -0,0 +1,23 @@ +# 组装器 + +![Harder, better, faster, stronger.](oredict:oc:assembler) + +组装器用来制作更加复杂的物品, 如 [机器人](robot.md), [无人机](../item/drone.md) 和 [平板](../item/tablet.md). 需要大量能源来组装设备, 推荐使用[电容版](capacitor.md)供电. + +将设备零件放入组装器来组装物品. 对于 [机器人](robot.md),需要 任意[机箱](case1.md) ; 对于[平板](../item/tablet.md), 需要[平板外壳](../item/tabletCase1.md). 像大多数OC物品栏那样, 部件可以被放入任意几个栏; 在物品栏悬停可以指示你有什么东西可以放进去. 有NEI的话,NEI也能显示合适的物品. 添加你希望成品能包含的配件. + +尤其注意你的操作系统, 或者你也可以选择一会再装(你可以为机器人安装[磁盘驱动器](diskDrive.md) 来使用 [软盘](../item/floppy.md) l). 对大多数设备来说 [E2PROM](../item/eeprom.md) 可以被再编程, + +插入不同的 [E2PROM](../item/eeprom.md) 后. 已有的 [E2PROM](../item/eeprom.md)会归还到物品栏 + +注意[机器人](robot.md) 也可以有 [屏幕](screen1.md), 你可以安装一个[屏幕 (1级)](screen1.md),这样可以敲入命令, + +也可以安放 [键盘](keyboard.md). 对于 [平板](../item/tablet.md), [屏幕](screen1.md)在[平板外壳](../item/tabletCase1.md)预装了, + +但是你还是要安一个 [键盘](keyboard.md) + +一切就位后,按下开始,设备会被组装,充能。记住,一旦组装就无法更改了,除非[拆解](disassembler.md)。 + +复杂度: 物品的级别决定了复杂度要求, 一级物品要求2复杂度,二级2,以此类推,箱子升级例外 + +此时复杂度为2倍箱子 (eg: a tier 2 [upgrade containers](../item/upgradeContainer1.md) requires 4 complexity, and likewise for [card containers](../item/cardContainer1.md)). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/cable.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/cable.md new file mode 100644 index 000000000..94f4ccf22 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/cable.md @@ -0,0 +1,10 @@ +# 线缆 + +![Salad.](oredict:oc:cable) + +连接[电脑](../general/computer.md) 和机器, + +可以被任意染料染色,之后只和同色或缺省的灰色连接 + +可以有效防止乱走线 + diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/capacitor.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/capacitor.md new file mode 100644 index 000000000..0b49ec111 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/capacitor.md @@ -0,0 +1,13 @@ +# 电容 + +![It's over 9000.](oredict:oc:capacitor) + +存储了网络需要的能源, 作为能源缓存.不像那种把其他能源转换过来的mod ([能源转换器](powerConverter.md)), + +这个能源转化是即时的. 内部缓存对一些有大量需求的任务比较有用, 比如[组装](assembler.md) 或者 [充能](charger.md) 设备 如[机器人](robot.md) , [无人机](../item/drone.md). + +存储效率和附近的电容总数有关. 比如两个相邻的电容总是比分开的两个存的多. + +相邻的判定是2个方块距离, 然后效率随着距离递减. + +可以链接[能源分发器](powerDistributor.md)为网络上的设备供能。 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/case1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/case1.md new file mode 100644 index 000000000..9b58a8a11 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/case1.md @@ -0,0 +1,35 @@ +# 机箱 + +![Just in case.](oredict:oc:case1) + +机箱有数个型号,越大的型号能放的配件越多 + +T1的可放配件: +- 2X T1扩展卡 (如[显卡](../item/graphicsCard1.md), [网卡](../item/lanCard.md)) +- 1x T1 [CPU](../item/cpu1.md) +- 2x T1 [内存](../item/ram1.md) +- 1x T1 [硬盘](../item/hdd1.md) + +T2的可放配件: +- 1x T1扩展卡 (如[显卡](../item/graphicsCard1.md), [网卡](../item/lanCard.md)) +- 1x T2 扩展卡 +- 1x T2 [CPU](../item/cpu2.md) +- 2x T2 [内存](../item/ram3.md) +- 1x T1 [硬盘](../item/hdd1.md) +- 1x T2 [硬盘](../item/hdd2.md) + +T3的可放配件: +- 1x T3 扩展卡 (如[显卡](../item/graphicsCard1.md), [网卡](../item/lanCard.md)) +- 2x T2 扩展卡 +- 1x T3 [CPU](../item/cpu3.md) +- 2x T3 [内存](../item/ram5.md) +- 1x T2 [硬盘](../item/hdd2.md) +- 1x T3 [硬盘](../item/hdd3.md) +- 1x [软盘](../item/floppy.md) + +T4的可放配件: +- 3x T3 扩展卡 (如[显卡](../item/graphicsCard1.md), [网卡](../item/lanCard.md)) +- 1x T3 [CPU](../item/cpu3.md) +- 2x T3 [内存](../item/ram5.md) +- 2xT3 [硬盘](../item/hdd3.md) +- 1x [软盘](../item/floppy.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/case2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/case2.md new file mode 100644 index 000000000..ee87d2036 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/case2.md @@ -0,0 +1 @@ +#REDIRECT case1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/case3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/case3.md new file mode 100644 index 000000000..ee87d2036 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/case3.md @@ -0,0 +1 @@ +#REDIRECT case1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/caseCreative.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/caseCreative.md new file mode 100644 index 000000000..ee87d2036 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/caseCreative.md @@ -0,0 +1 @@ +#REDIRECT case1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/chameliumBlock.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/chameliumBlock.md new file mode 100644 index 000000000..b34abc2bb --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/chameliumBlock.md @@ -0,0 +1,8 @@ +# 染色方块 + +![So... blank.](oredict:oc:chameliumBlock) + +几篇[印刷电路板](../item/chamelium.md) 可以被变成特殊装饰用途的有色方块. + +可以被原版任意染色 + diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/charger.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/charger.md new file mode 100644 index 000000000..b92f3b82e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/charger.md @@ -0,0 +1,13 @@ +# 充电机 + +![All right, let's do this.](oredict:oc:charger) + +充电机为移动的设备 [机器人](robot.md), [无人机](../item/drone.md) and [平板](../item/tablet.md)充能. 可以被红石激活。 + +充能速度被红石信号强度决定, 15强度最大. + +这个逻辑可以被[扳手](../item/wrench.md)反转。 + +当一个[平板](../item/tablet.md) 放入充电机后, 第一硬盘[hard drive](../item/hdd1.md) 也会被连接充电机的 [电脑](../general/computer.md)访问到 + +就像[软盘](../item/floppy.md)一样. 这允许在电脑和平板间传送数据。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/disassembler.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/disassembler.md new file mode 100644 index 000000000..75ed96844 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/disassembler.md @@ -0,0 +1,7 @@ +# 拆解器 + +![Build it, tear it down.](oredict:oc:disassembler) + +可以将大多数电脑拆成零件. 常用来回收不用的零件或者合错的东西,比如没有烧入系统或者程序的机器人 + +这会花费一些时间和能源,也可能被吞配件。 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/diskDrive.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/diskDrive.md new file mode 100644 index 000000000..c34bde088 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/diskDrive.md @@ -0,0 +1,15 @@ +# 软盘驱动器 + +![Going round and round and...](oredict:oc:diskDrive) + +用于读取[软盘](../item/floppy.md). 初期很有用,因为低级别的 [机箱](case1.md)没有软盘槽 + +你还需要操作系统如OpenOS,Plan9K,MineOS等,来启动[电脑](../general/computer.md). + +[OpenOS](../general/openOS.md) 安装盘可以用空的 [软盘](../item/floppy.md) 和[OC手册](../item/manual.md)合成. + +也可以被安装在机器人[robots](robot.md)里面来允许插入 [软盘](../item/floppy.md) + +在没有网卡的时候这是非常有用的数据传输方式了 + +可以 通过shift(蹲) + 右键,可以不打开软驱GUI装卸软盘 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/geolyzer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/geolyzer.md new file mode 100644 index 000000000..f639ea6d9 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/geolyzer.md @@ -0,0 +1,5 @@ +# 地图扫描机 +![Xray](oredict:oc:geolyzer) +让电脑具有扫描周边地形的能力,会把周边的方块硬度分布描述出来,可以生成一个能够在[全息投影机](hologram1.md)显示出来的地图,并描绘方块硬度分布,因此某种程度上用好了就是矿追。 + +由于可能有奇怪的干扰,理论来说经常要多次扫描才能确认。它可以被作为升级安装在机器人和平板电脑上面,扫描消耗电池的能量。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram1.md new file mode 100644 index 000000000..c1cd02d22 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram1.md @@ -0,0 +1,11 @@ +# 全息投影机 + +![Is this the real life? Is this just fantasy?](oredict:oc:hologram1) + +一个巨大的显示屏, i.e. 可以显示独立的三维图形,就是那种全息的3D,偏振光原理那种(高中课本会讲) + +2级显示屏, 分辨率不变但是支持电脑定制每个像素的颜色 + +可以被[扳手](../item/wrench.md)旋转 [, + +可以在范围内任意放缩显示 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram2.md new file mode 100644 index 000000000..e1acf9676 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/hologram2.md @@ -0,0 +1 @@ +#REDIRECT hologram1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md new file mode 100644 index 000000000..cf8a4e9e4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md @@ -0,0 +1,48 @@ +# Blocks + +本索引列出了OC全部的的方块 如果要找物品点[这里](../item/index.md). + +Keep in mind that some of these may not be available, depending on the recipe set used. + +## Computers +* [机箱](case1.md) +* [单片机](microcontroller.md) +* [机架](rack.md) +* [机器人](robot.md) + +## Components + +### Input / Output +* [全息投影机](hologram1.md) +* [键盘](keyboard.md) +* [屏幕](screen1.md) + +### Storage +* [硬盘](diskDrive.md) +* [磁盘阵列](raid.md) + +### Extensions +* [适配器](adapter.md) +* [扫描器](geolyzer.md) +* [运动探测器](motionSensor.md) +* [红石IO接口](redstone.md) +* [转置器(注:直译)](transposer.md) +* [路径点](waypoint.md) + +## Assembly / Printing +* [3D打印](print.md) +* [3D打印机](printer.md) +* [组装器](assembler.md) +* [染色方块](chameliumBlock.md) +* [拆解器](disassembler.md) + +## Networking +* [线缆](cable.md) +* [VLAN分割器](netSplitter.md) +* [中继器](relay.md) + +## Power management +* [电容](capacitor.md) +* [充电器](charger.md) +* [能源转换](powerConverter.md) +* [能源分发](powerDistributor.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/keyboard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/keyboard.md new file mode 100644 index 000000000..8e3902023 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/keyboard.md @@ -0,0 +1,5 @@ +# Keyboard + +![QWERTY](oredict:oc:keyboard) + +在[屏幕](screen1.md)上打字 , 或者嵌入 [机器人](robot.md) 和 [平板](../item/tablet.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/microcontroller.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/microcontroller.md new file mode 100644 index 000000000..bcaf67e2d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/microcontroller.md @@ -0,0 +1,8 @@ +# Microcontroller + +![Don't belittle it.](block:OpenComputers:microcontroller) + +单片机通过[单片机箱](../item/microcontrollerCase1.md) 在[组装机](assembler.md)组装. 相比电脑他们弱得多 , 但是便宜. 另外他们无法和外界物件交互. + +单片机可以携带多种组件, 如 [CPU](../item/cpu1.md), [内存](../item/ram1.md), 扩展卡. 单片机无法携带[硬盘](../item/hdd1.md)只能烧入[E2PROM](../item/eeprom.md), +相比[机箱](case1.md)他们可以用一些特别的升级 比如[活塞升级](../item/pistonUpgrade.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/motionSensor.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/motionSensor.md new file mode 100644 index 000000000..0e409f438 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/motionSensor.md @@ -0,0 +1,7 @@ +# Motion Sensor + +![Don't. Blink.](oredict:oc:motionSensor) + +运动探测器允许 [电脑](../general/computer.md)探测生物. 如果生物移速快过阈值,将会向连接的电脑发出红石信号 [computers](../general/computer.md) +阈值可以在连接的电脑上用组件API调节 +探测范围8格, 不能有障碍物,生物走出范围或者连线上有障碍都会使得生物无法被探测。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/netSplitter.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/netSplitter.md new file mode 100644 index 000000000..55e32f7d7 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/netSplitter.md @@ -0,0 +1,9 @@ +# Net Splitter + +![*.net *.split](oredict:oc:netSplitter) + +VLAN分割器能够让你控制子网的连接. 它不像 [中继器](relay.md) 或者 [能源转换](powerConverter.md) 那样直接连接相邻的子网. +每个边的连接都可以用扳手控制 (e.g. the [scrench](../item/wrench.md)). +接入红石信号之后, 所有连接反相. + +这个方块可以控制特定子网的连接. 使用[红石IO方块](redstone.md) 和 [红石卡](../item/redstoneCard1.md) 可以实现对他的自动化控制 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/powerConverter.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/powerConverter.md new file mode 100644 index 000000000..5a03b5f9d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/powerConverter.md @@ -0,0 +1,8 @@ +# Power Converter + +![One of us? One of us!](oredict:oc:powerConverter) + +能源转换器是最快捷的使用其他mod能源的办法了. +如果只是运行单台机器,那么不需要造这个东西。 如果你有一个只是偶尔使用的大电容你也不用做这个方块 +然而如果你想直接驱动[装配机](assembler.md) 或者 [充电机](charger.md), +这个东西往往比直接连接外部能源要给力 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/powerDistributor.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/powerDistributor.md new file mode 100644 index 000000000..79462fa99 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/powerDistributor.md @@ -0,0 +1,6 @@ +# Power Distributor + +![Power to the masses.](oredict:oc:powerDistributor) + +能源分配器能够将一个共享能源池(如[电容](capacitor.md))的能源分配出去, 使得子网络能够在不暴露元件的情况下分享能源 +它的作用是负载均衡,因此你会发现每个子网的能量供应都“差不多” \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md new file mode 100644 index 000000000..0f803aec6 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md @@ -0,0 +1,11 @@ +# 3D打印制品 + +![Any way you want me.](block:OpenComputers:print) + +3D打印制品由 [3D打印机](printer.md)制造. 他们主要作为装饰用途出现, 但也可以用作收发红石信号来扩展出一点点小的功能. + +可以通过放入 [3D打印机](printer.md)进行回收. 可以重用一点用来打印的 [油墨](../item/chamelium.md). 打印的颜料是不会回收的. + +长按shift(默认的OC扩展tip)会显示出当前打印制品的激活状态. + +兼容Forge Multipart. 在他们不碰撞,且单个方块的形状数量不超出上限的情况下它们可以被放入单个方块的空间,比如火炬,拉杆,线缆等. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md new file mode 100644 index 000000000..3fdb09cae --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md @@ -0,0 +1,18 @@ +# 3D Printer + +![2D printing is so yesteryear.](oredict:oc:printer) + +3D printers allow you to print any block of any shape, with any type of texture. To get started with 3D printers, you will need to place down a 3D printer block next to a computer. This will give access to the `printer3d` component API, allowing you to set up and print [models](print.md) using the provided functions. + +A more convenient way to setup 3D printers is to use Open Programs Package Manager (OPPM). Once installed (`oppm install oppm`), make sure you have an [internet card](../item/internetCard.md) in your [computer](../general/computer.md) and run the following command: +`oppm install print3d-examples` + +The examples can then be found in `/usr/share/models/` as .3dm files. Take a look through the example files for available options, in particular the `example.3dm` file. Alternatively, you can download the `print3d` and `print3d-examples` programs from OpenPrograms using `wget` and an [internet card](../item/internetCard.md). + +In order to be able to print the models, a 3D printer needs to be configured via a [computer](../general/computer.md). If set to print non-stop, the computer will no longer be required thereafter. You will also need to provide an [ink cartridge](../item/inkCartridge.md) and some [chamelium](../item/chamelium.md) as input materials. The amount of chamelium used depends on the volume of the 3D print, while the amount of ink used depends on the surface area of the printed item. + +To print an item, use the following command: +`print3d /path/to/file.3dm` +providing the path to the .3dm file. + +Documentation pertaining to creating your own models can be found in `/usr/share/models/example.3dm`. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/rack.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/rack.md new file mode 100644 index 000000000..9fbd629a5 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/rack.md @@ -0,0 +1,6 @@ +#机架 +![Free housing.](oredict:oc:rack) + +机架中可以存放各种电脑,如服务器,终端服务器等,组件之间可以通过GUI设定他们的连接关系。如果服务器里面安装了网卡等组件,那么机架里面的服务器也是可以互联的,但是他们只能用来传递消息,而不能直接互相看到。你的程序不能直接探测到一个机柜里面的其他设备 + +机架里有一条总线,如果要让组件互相可见,那么就连接到总线上。 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/raid.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/raid.md new file mode 100644 index 000000000..bbeeff0b0 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/raid.md @@ -0,0 +1,15 @@ +# Raid + +![40 man instance.](oredict:oc:raid) + +Raid箱提供了[硬盘](../item/hdd1.md)的磁盘阵列功能,如同现实的RAID0一样,通过多块磁盘并发写入同时提高了效率和容量 + + 组合的文件系统拥有所有硬盘容量之和的大小并且所有相连的电脑均可以访问RAID + +当且仅当3个以上的磁盘被放进RAID控制器时,这块些磁盘会被看作一块,允许每块磁盘大小不同 + +注意当你加入RAID的时候原来的盘数据会全部丢失掉,而从RAID移除一块硬盘也会直接导致整个RAID损坏 + +加回去也不会拯救这个事实,RAID会被重新初始化为空的磁盘 + +挖掉RAID方块则不会丢失数据,相应的磁盘可以被重新放到一个新的RAID里面继续用 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/redstone.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/redstone.md new file mode 100644 index 000000000..0b2c4594d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/redstone.md @@ -0,0 +1,12 @@ +# Redstone I/O + +![Hi Red.](oredict:oc:redstone) + +红石IO方块可以被用来远程读取和发射红石信号. 他就像1级和2级[红石卡](../item/redstoneCard1.md)的杂交品: + +可以收发简单的信号也可以收发信号群, 但是无法收发无线红石信号 + +When providing a side to the methods of the component exposed by this block, the directions are the global principal directions, i.e. it is recommended to use `sides.north`, `sides.east` and so on. + +如[红石卡](../item/redstoneCard1.md), 当红石变化的时候,这个方块会向连接的[电脑](../general/computer.md) 发送信号,(模拟或者信号束).也可以用来唤醒连接的[电脑](../general/computer.md) +如果达到一定的强度可以直接把电脑开机 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md new file mode 100644 index 000000000..a309b8925 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md @@ -0,0 +1,17 @@ +# Relay + +![Building bridges.](oredict:oc:relay) + +中继器允许子网间发送消息, 而不必把组件暴露给其他网络的 [电脑](../general/computer.md). 通常来说把组件限制在本地网络是个好主意(如果被不怀好意的熊控制了你的机器人,那么你家就完蛋了), + +可以用来避免[电脑](../general/computer.md) 链接到错误的 [屏幕](screen1.md) 或者避免组件崩溃 (可能崩掉电脑,并使之无法启动). + +中继器可以安装[无线网卡](../item/wlanCard.md) 来无线传递消息. 无线消息也可以被其他的中继器接受并转发, 或者是被有无线网卡的电脑收到 + +中继器也可以安装[连接卡](../item/linkedCard.md).此时他会将消息转发到链接卡的信道里面, 记得保持中继器能源 + +中继器不会记下包的路径, 因此请避免网络环路(现实中将触发广播风暴,全网瘫痪). 由于中继器资源不是无限的,过于频繁的发包将会导致丢包. + +你也可以通过升级来加速转发速度. + +包只会被转发有限次数(TTL),当TTL降为0时,包会被自动丢弃,缺省的TTL是5,每转发一次减去1 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/robot.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/robot.md new file mode 100644 index 000000000..53f45877d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/robot.md @@ -0,0 +1,9 @@ +# Robot + +![His name was Tobor.](block:OpenComputers:robot) + +机器人不像 [电脑](../general/computer.md), 他们是可以像一个玩家一样去和世界交互的. 不过它们不能直接和其他设备交互! 如果需要和 [电脑](../general/computer.md) 和其他机器人通讯, 那么用[无线网卡](../item/wlanCard.md), 或者通过[红石卡](../item/redstoneCard1.md)实现更底层的协议去通信. + +机器人通过将任意等级[机箱](case1.md) 放入 [组装机](assembler.md)制作的. 更高规格的[机箱](case1.md) 可以做出更复杂的机器人. 机器人的复杂度会显示在 [组装机](assembler.md),复杂度取决于携带和安装的卡片和扩展数量; 级别越高,数量越多,越复杂,达到一定程度组装机将罢工. + +机器人可以放入各种升级来加强. 包括 [物品栏升级](../item/inventoryUpgrade.md) [物品栏控制器](../item/inventoryControllerUpgrade.md) [储罐升级](../item/tankUpgrade.md), [导航升级](../item/navigationUpgrade.md)等. 卡和扩展都可以在机器人运行时热替换. 机器人也可以安装软驱来插软盘, 用来安装 [openOS](../general/openOS.md)(你也可以在组装的时候就带上预装系统的硬盘). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md new file mode 100644 index 000000000..804662776 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md @@ -0,0 +1,12 @@ +# Screens + +![See this?](oredict:oc:screen1) + +显示屏需要和显卡一起使用, 使得电脑能够显示文本.不同型号的屏幕能够显示不同的东西, 比如不同的分辨率和色深. 从低分单色屏到高分256色屏幕,可用分辨率取决于最差的那个配件。 当使用T1显卡和T3屏幕时,仅T1的分辨率和色深可用,反之亦然。但是T3显卡的运行速度会快些 + +屏幕可以相邻放置组成多方块屏幕,需要朝向一样. 旋转的上下方向也要一直. 屏幕旋转方向可以通过拿在手上的屏幕里面的箭头确定.屏幕大小对分辨率无影响,屏幕也可以染色来控制哪两块屏幕可以连接,手持染料右键即可,染料不会消耗掉. 屏幕在敲下来以后仍然保持他的颜色. 不同色不会连一起,同色不同型也不会.T2和T3屏支持鼠标. 屏幕会响应点击事件(只会在有键盘的时候或者是按下蹲的时候打开),在屏幕没有键盘的时候,蹲下是唯一操作办法.注意在交互是是否打开屏幕是可以通过组件API控制的T3可以配置为接受更高的点击精度,这可以让人判定是点击上半个字符还是下半个,可以用来模拟更高分辨率的屏幕。 + +分辨率如下: +T1: 50x16, 单色. +T2: 80x25, 16色 +T3: 160x50, 256色 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen2.md new file mode 100644 index 000000000..9a0e09ec3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen2.md @@ -0,0 +1 @@ +#REDIRECT screen1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen3.md new file mode 100644 index 000000000..9a0e09ec3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen3.md @@ -0,0 +1 @@ +#REDIRECT screen1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/switch.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/switch.md new file mode 100644 index 000000000..1fa933e32 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/switch.md @@ -0,0 +1,13 @@ +# Switch + +![Building bridges.](oredict:oc:switch) + +*本方块过期了,请换用中继器 + +The switch can be used to allow different subnetworks to send network messages to each other, without exposing components to [computers](../general/computer.md) in other networks. Keeping components local is usually a good idea, to avoid [computers](../general/computer.md) using the wrong [screen](screen1.md) or to avoid component overflows to happen (causing [computers](../general/computer.md) to crash and refuse to boot up). + +There is also a wireless variation of this block, called the [access point](accessPoint.md), which will also relay messages wirelessly. Wireless messages can be received and relayed by other [access points](accessPoint.md), or by [computers](../general/computer.md) with a [wireless network card](../item/wlanCard.md). + +Switches and [access points](accessPoint.md) do *not* keep track of which packets they relayed recently, so avoid cycles in your network or you may receive the same packet multiple times. Due to the limited buffer size of switches, sending messages too frequently will result in packet loss. You can upgrade your switches and [access points](accessPoint.md) to increase the speed with which they relay messages, as well as their internal message queue size. + +Packets are only re-sent a certain number of times, so chaining an arbitrary number of switches or access points is not possible. By default, a packet will be re-sent up to five times. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/transposer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/transposer.md new file mode 100644 index 000000000..458291835 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/transposer.md @@ -0,0 +1,9 @@ +# Transposer + +![Such a poser.](oredict:oc:transposer) + +转置器连接了红石控制的漏斗和[机器人](robot.md), 允许 [电脑](../general/computer.md)-控制液体和物品在相邻方块转移. + +*本方块不自带物品栏.* + +本方块具有探测容器物品的能力 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md new file mode 100644 index 000000000..de7318228 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md @@ -0,0 +1,6 @@ +# Waypoint + +!["This way!" - "No, that way!"](oredict:oc:waypoint) +路径点重点不在本身,而是如何使用. 导航升级可以探测路径点, 因此安装了这种升级的设备就可以通过它导航. 这在对机器人和无人机写高度可重用的程序时很有用. +注意导航升级报告的路径点位置指的是路径点方块的正面相邻的方块(粒子效果指示). 因此你可以把他放在箱子的边上或者上方, 通过将路径点看作“箱子上方”,而不必在你的程序里面旋转路点坐标。 +一个路点有两个属性: 一个是收到的红石信号强度, 一个是可编辑的标签. 它是32长度字符串,并且可以在连接路点的设备上进行编辑,它告诉我们路点该如何使用 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/general/computer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/general/computer.md new file mode 100644 index 000000000..c50679556 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/general/computer.md @@ -0,0 +1,9 @@ +# Computers + +电脑通过组合不同的材料, [方块](../block/index.md) 和组件制造. 你最少需要一个机箱,一个屏幕,一块键盘,一个cpu,内存若干,一块E2PROM。 + +低级别机箱需要一个[软驱]来读[软盘](../item/floppy.md)(../block/diskDrive.md)。 第一次运行需要一个[OpenOS](openOS.md) [软盘](../item/floppy.md)来安装操作系统到[硬盘](../item/hdd1.md),一旦安装到硬盘,那么软盘就不需要插在机器里面了. 附加软件也经常以软盘形式出现,如开放式电脑包管理器OPPM的软盘就可以从地牢翻出来。 + +最后就是要给电脑接电源了,本mod兼容大多数电源,不论是EU还是RF还是什么奇怪的,大部分方块可以被直接供电 + +对于大型电脑网络,推荐使用[能源转换器](../block/powerConverter.md)供电,并以[能源分发器](../block/powerDistributor.md)分发 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/general/example.md b/src/main/resources/assets/opencomputers/doc/zh_CN/general/example.md new file mode 100644 index 000000000..3bdda70bc --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/general/example.md @@ -0,0 +1,69 @@ +# Headline with more lines [with link](redirect1.md) and *some* more + +This is some test text for the subset of Markdown supported by the planned ingame documentation system for OpenComputers. +![This is a tooltip...](opencomputers:textures/gui/printer_ink.png) +![This is a tooltip...](opencomputers:/textures/gui/printer_material.png) +*This* is *italic* text, ~~strikethrough~~ maybe abc-ter **some** text **in bold**. Is _this underlined_? Oh, no, _it's also italic!_ Well, this [a link](../index.md). +![This is rendered live.](oredict:oc:assembler) +## Smaller headline [also with *link* but this __one__ longer](../block/adapter.md) + +![This is another tooltip.](item:OpenComputers:item@23) + +some text directly above the item stack renderer to test spacing +![All the colors.](oredict:craftingPiston) +some text directly below the item stack renderer to test spacing + +This is *italic +over two* lines. But *this ... no *this is* **_bold italic_** *text*. + +### even smaller + +*not italic *because ** why would it be*eh + +`test for code` +`that's not code yet` +`function f(a)` +` testingIndent(a)` +` do` +` lalala()` +` end` +`end` +yeah, line spacing is a bit low, but otherwise too little text fits on one screen. +this is some `code` that's inline. then `some more CODE that` line wraps and so on. + +isn't*. + + # not a header + +* this is a list item and the text that will be wrapped will be indented appropriately +- this should also `work for code rendered text, if it doesn't i` will be a sad person + +asdasd ![oh my god, the recursion!](img/example.png) qweqwe + +And finally, [this is a link!](https://avatars1.githubusercontent.com/u/514903). + +![broken item image](item:this is broken) +![broken item image](block:this is broken) +![broken item image](oredict:this is broken) + +wrap testing +12345678901234567890.1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 +`123456789012345678901234567890.12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890` + +* 12345678901234567890.1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 +- `123456789012345678901234567890.12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890` + +this is a test for an![](oredict:oc:cpu1)an inline image kakakakalalsd 123 as + +this is a test for an![](oredict:oc:cpu1) +an image with a break after it + +this is a test for an +![](oredict:oc:cpu1) +an image between two lines + +this is a test for an + +![](oredict:oc:cpu1) + +an image between two blank lines diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/general/lua.md b/src/main/resources/assets/opencomputers/doc/zh_CN/general/lua.md new file mode 100644 index 000000000..9df10cb18 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/general/lua.md @@ -0,0 +1,15 @@ +# Lua + +[LUA编程手册](http://www.lua.org/manual/5.2/manual.html) 和 [LUA编程第一版](http://www.lua.org/pil/) 是学习基本功能并熟悉lua标准库的好帮手. [OpenOS](openOS.md) 尽可能准确的模拟标准库,当然有些许变化,比如某些高权限的debug库去掉了. 这些不同点写在了[这里](http://ocdoc.cil.li/api:non-standard-lua-libs). + +require命令用来在脚本里引用模块 +比如 +`local component = require("component")` //引入组件API相关,所有组件api的函数可以调用了 +`local rs = component.redstone` //引入红石相关,红石API可以用了 +这将允许你使用[红石卡](../item/redstoneCard1.md)相关的组件功能,如: +`rs.setOutput(require("sides").front, 15)` //将前方的红石信号强度设为15 +所有标准库不需要用require引用 + +重要:在Lua解释器的环境下请不要用local修饰符(脚本里面没有这个限制),这会在命令完成后将这个变量回收掉,你会发现你得不到任何变量,这是由于mod环境资源有限,不可能随时将库载入内存。 + +OpenOS提供了大量第三方库,从控制电脑连接的组件到机器人和无人机,有些库只有在相关卡安装后才能用,也就是说这些组件相当于包含了一个小型的只读文件系统 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/general/openOS.md b/src/main/resources/assets/opencomputers/doc/zh_CN/general/openOS.md new file mode 100644 index 000000000..3b18d138d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/general/openOS.md @@ -0,0 +1,11 @@ +# OpenOS + +OpenOS 是OpenComputers里面的基本操作系统. 必须用它来进行[电脑](computer.md)的第一次启动, 可以通过用空的 [软盘](../item/floppy.md) 和 [手册](../item/manual.md) 合成. + +合成后, [此软盘](../item/floppy.md) 就可以放进连接电脑的 [软驱](../block/diskDrive.md)来启动电脑,OpenOS的软盘是只读的,所以推荐将系统安到硬盘里面。如果要安装到硬盘,请在启动完成后在shell敲入install,选择OpenOS的编号 + +OpenOS可以在除了单片机和无人机外的任何设备安装,安装好了以后,软盘可以被拔出 + +OpenOS拥有大量内建命令, 最有用的是lua,将打开lua解释器,这里可以测试命令, 在将命令写入lua文件脚本前试验组件api.注意解释器启动时的信息,会告诉你如何显示命令结果,如何退出。 + +要得到编程的信息请转到[Lua Programming](lua.md) . 运行脚本的话敲入文件名回车就行了(比如, 通过在shell敲下script,就可以运行`script.lua`). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md b/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md new file mode 100644 index 000000000..54ac19b41 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md @@ -0,0 +1,59 @@ +# 快速入门 + +这篇文章叫做"如何组装第一台电脑". 为了使你的[电脑](computer.md)运作, 你要正确的设定他. 我们有多个档次的电脑, 但我们会从基础档开始. + +**Disclaimer**: 这是手把手的教程, 会告诉你后面出现问题要怎么处理, 因此这教程比较长. 如果现实中没有装机经历, 并且你是萌新, 那么请耐心读完. + +首先你需要一个[机箱](../block/case1.md). 这个方块将容纳你的电脑配件, 并定义你电脑的行为. + +![A tier two computer case.](oredict:oc:case2) + +比如你要挑一个适合你的 [显卡](../item/graphicsCard1.md)(GTX690,GTX1080,划掉), 还可能需要一个[网卡](../item/lanCard.md), 一块 [红石卡](../item/redstoneCard1.md) , 如果你是可以调创造的狗管理你还可以拿出 [调试卡](../item/debugCard.md). + +打开[机箱](../block/case1.md)你会看到一系列的槽位. 上面写了槽位的数量,可以放什么样的配件进去,等 (槽位小字有写),这些数据取决于机箱档次. + +![GUI of a tier two computer case.](opencomputers:doc/img/configuration_case1.png) + +如果没放东西, [机箱](../block/case1.md)完全没用. 如果你试图按下 [电脑](computer.md)的开机键, 他只会立刻在你的聊天框输出一条错误, 用蜂鸣声提示你. 幸运的是他提醒了你要怎么去做: 电脑需要能源. 把你的电脑接发电机, 或者是接到[能量转换器](../block/powerConverter.md). + +这次启动, 他会告诉你电脑需要 [CPU](../item/cpu1.md). CPU分不同级别,越高级的要越多的东西合成,执行速度也快。选择一款CPU,丢进你的[机箱](../block/case1.md). + +好的这次他要你放[内存](../item/ram1.md)了 . 注意警报变化了: 长-短. 越高级的 [内存](../item/ram1.md)容量越大,跑的程序越多. 运行 [OpenOS](openOS.md), 这篇教程的目标, 需要至少2条T1 [内存](../item/ram1.md). + +ok,做的很好,现在[机箱](../block/case1.md) 变成这样了: + +![Partially configured computer.](opencomputers:doc/img/configuration_case2.png) + +别急, 现在虽然不会打印错误了, 但是他也什么都做不了. 至少他还会发出两声警报. 这意味着电脑进入执行状态,但是未能成功. In other words: it technically runs! This is where a very useful tool comes into play: the [analyzer](../item/analyzer.md). This tool allows inspecting many of OpenComputers' blocks, as well as some blocks from other mods. To use it on the [computer](computer.md), use the [analyzer](../item/analyzer.md) on the case while sneaking. + +你会在聊天框看到 [电脑](computer.md) 遇到的错误: + +`no bios found; install configured EEPROM` + +这说明你需要一个刷写程序的E2PROM芯片装入机箱来指定电脑的任务 + +注意那个 configured,需要刷一个程序。合成E2PROM很简单,但是刷写程序需要电脑,是不是难了点,这里我们要直接合成一个预刷写LUA BIOS的E2PROM,使用E2PROM和你的手册合成,将这个ROM丢进机箱,开机! + +啊哈哈,还是啥都没有,但是我们看到了一条信息 + +`no bootable medium found; file not found` + +说明Lua BIOS运行正常,它执行了对文件系统的搜索,如根目录含有init.lua的[软盘](../item/floppy.md)或者[硬盘](../item/hdd1.md),因此我们现在需要一张带有OpenOS安装的软盘(用空磁盘+手册合成) + +嗯,如果你用了T2机箱,那么你还要做一个[软盘驱动器](../block/diskDrive.md)来读盘,如果是T3及以上那么直接放到机箱就行了,如果使用驱动器,那么将驱动器放在电脑边上,插入软盘,启动 + +好的,他启动了。如果有什么问题的话,可以使用[分析仪](../item/analyzer.md)排查。不过我们的电脑应该跑起来了。 + +最难的部分已经过去了,剩下就是如何让电脑输出信息,并且让电脑接受输入 + +你需要将一个[屏幕](../block/screen1.md)安放在电脑上 ,并在机箱安装[显卡](../item/graphicsCard1.md) + +![No, it's not a flatscreen.](oredict:oc:screen2) + +之后你就可以看到电脑的输出,然后电脑就会等待你的操作了,尝试一下吧!敲入 'lua' 并按下回车,你将会得到lua交互解释器的帮助(英文),你可以测试基本lua命令,更多信息见[the Lua page](lua.md) + +![It lives!](opencomputers:doc/img/configuration_done.png) + +之后就可以建造更复杂的 [电脑](computer.md), [服务器](../item/server1.md) ,用 [组装机](../block/assembler.md) 组装[机器人](../block/robot.md), [无人机](../item/drone.md), [单片机](../block/microcontroller.md) 和 [平板](../item/tablet.md). + +Happy coding! \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/index.md b/src/main/resources/assets/opencomputers/doc/zh_CN/index.md new file mode 100644 index 000000000..0036a4296 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/index.md @@ -0,0 +1,47 @@ +# OpenComputers Manual + +OpenComputers 是一个持久化,模块化,高度可定制化的mod,在游戏中提供了 [电脑](general/computer.md), [服务器](item/server1.md), [机器人](block/robot.md), 和 [无人机](item/drone.md) .所有设备均可通过LUA5.2编写程序, 实现各种复杂的系统. + +通过 [关于手册](item/manual.md)学习mod (绿字是链接,可点击). + +## 内容 + +### 设备 +- [电脑](general/computer.md) +- [服务器](item/server1.md) +- [单片机](block/microcontroller.md) +- [机器人](block/robot.md) +- [无人机](item/drone.md) + +### 软件和程序编写 +- [OpenOS](general/openOS.md) +- [Lua](general/lua.md) + +### 方块和物品 +- [物品](item/index.md) +- [方块](block/index.md) + +### Guides +- [Getting Started](general/quickstart.md) + +## Overview + +如上文所说, 电脑可以持久化的存储自己的状态, 意味着运行的 [电脑](general/computer.md) 即使在所属区块被卸载时也能保持住自己的状态. 也就是说当玩家离开 [电脑](general/computer.md)所在的区块, 或者退出后, [电脑](general/computer.md) 将会记住离开前最后一刻的状态, 并在区块被加载后重新从断电恢复运转[电脑](general/computer.md). 特性 不包括[平板](item/tablet.md). + +所有的设备高度模块化,可以用多种材料制作, 正如现实的 [电脑](general/computer.md) . 善于发现的玩家能够不断将他的设备打造成理想的样子. 只要想,设备甚至在设计不满意的时候可以被 [拆卸](block/disassembler.md) 并重组. 对于 [电脑](general/computer.md) 和 [服务器](item/server1.md), 设备可以被通过GUI热插拔。 + +OpenComputers 与多个mod兼容,不论是方块还是实体。(通过 [适配器](block/adapter.md), 或者对 [机器人](block/robot.md) 和 [无人机](item/drone.md)进行适当的升级). 多个mod均可以用来为这些电脑供能, 包括但不限于以下: RF,EU, MJ,AE2能源 甚至是因式分解mod的能量. + +虽说有些限制,OC mod依然提供了大量的可能性. [电脑](general/computer.md) 是基础, 能够做到大多数事情, CPU是核心. [电脑](general/computer.md) 可以访问周围6个面的组件. [服务器](item/server1.md) 可以通过 [总线](item/componentBus1.md)链接更多设备 (内部或外部互联), ; 但是服务器只能被安装在[机架](block/rack.md), 他只能被从[机架](block/rack.md)的一侧被访问到, 访问的侧可以被从 [机架](block/rack.md) GUI设定. [单片机](block/microcontroller.md) 功能十分受限 (比起普通的[电脑](general/computer.md)), 因为他们只有可怜的存储[硬盘](item/hdd1.md) 和外置存储 [软盘驱动器](block/diskDrive.md) , 意味着通常的 [OpenOS](general/openOS.md) 无法被安装到 [单片机](block/microcontroller.md). [单片机](block/microcontroller.md)只有一个 [E2PROM](item/eeprom.md)槽, 只能被编程为执行有限的简单任务. + +[机器人](block/robot.md) 是移动的 [电脑](general/computer.md), 可以与世界交互 (但无法和外部电脑方块交互).不像 [电脑](general/computer.md), [机器人](block/robot.md) 一经建造,内部的部件就不能再被改变或者去除. 为了解决这个问题, [机器人](block/robot.md) 可以被 [升级](item/upgradeContainer1.md) 或者 [卡片](item/cardContainer1.md) 插入, 允许热升级或者插拔卡片. [OpenOS](general/openOS.md) 可以在 [机器人](block/robot.md) 上面通过放一个[硬盘](block/diskDrive.md) 安装, 也允许插入 [软盘](item/floppy.md) disks, 或者插入预装了OpenOS的硬盘. 重设机器人需要将机器人[拆解](block/disassembler.md) . [无人机](item/drone.md)是阉割版机器人 [robots](block/robot.md). 他们只有少量物品栏,移动方式也和机器人不同, 像[单片机](block/microcontroller.md)一样安不上操作系统, [无人机](item/drone.md) 可以被插入预编程的 [E2PROM](item/eeprom.md)). 大部分情况下, [机器人](block/robot.md) 和 [无人机](item/drone.md) 使用相同的配件和更新; 然而, 这些东西在无人机和机器人的表现不统一, [物品栏升级](item/inventoryUpgrade.md) 每次只提供四个物品栏, 最多8个, [机器人](block/robot.md) 可以携带最多四个,每个提供16个物品的 [物品栏升级](item/inventoryUpgrade.md) + +##机器人 + +制作机器人请将机箱放到组装器里面,这样就可以做机器人了 + +可以装入各种升级和卡片,配备软驱的机器人还可以安装OS + +机器人的汉化卡死,所以就简单的说下好了 + +E文好的可以去看E文手册 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/abstractBusCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/abstractBusCard.md new file mode 100644 index 000000000..0d9ad2490 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/abstractBusCard.md @@ -0,0 +1,5 @@ +# 抽象总线卡 + +![More networking!](oredict:oc:abstractBusCard) + +允许[电脑](../general/computer.md), [服务器](server1.md) and [机器人](../block/robot.md) to interact with StargateTech2's abstract bus. When the card is installed, these blocks will connect to the abstract bus and a component becomes available to the machine that can be used to send messages across the abstract bus. Incoming abstract bus messages are converted to signals that are injected into the machine. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/acid.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/acid.md new file mode 100644 index 000000000..6ca0004fd --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/acid.md @@ -0,0 +1,9 @@ +# 酸液 + +![Reflux?](oredict:oc:materialAcid) + +可口的[citation needed] 遥指, 如果你想找点乐子的话就喝下去吧www。 当然这可能烧了你的食管. 也可以作为多种物资的原料 + +一个主要用处是从系统移除[纳米机器](nanomachines.md) + +在困难模式下它用来把[电路板](circuitBoard.md) 刻蚀为 [印刷电路板](printedCircuitBoard.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/alu.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/alu.md new file mode 100644 index 000000000..f0c701b79 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/alu.md @@ -0,0 +1,5 @@ +# 逻辑运算单元 + +![I can into logic!](oredict:oc:materialALU) + +用来合成计算组件, 比如[CPU](cpu1.md), [显卡](graphicsCard1.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/analyzer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/analyzer.md new file mode 100644 index 000000000..b8d051f9b --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/analyzer.md @@ -0,0 +1,7 @@ +# 分析仪 + +![Must. Resist. Bad. Joke.](oredict:oc:analyzer) + +一个小巧的,用来探测OC方块信息的仪器.只要简单的蹲下并右键就可以把方块信息打印出来. 信息从基础的仪器地址, 到他在子网内的能源等级,到让电脑当机的错误信息 + +另外一个用处是ctrl+右键, 这些信息会拷贝到剪贴板,可以粘贴到电脑终端 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/angelUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/angelUpgrade.md new file mode 100644 index 000000000..c3d27f85d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/angelUpgrade.md @@ -0,0 +1,5 @@ +# 天使升级 + +![哈利路亚!.](oredict:oc:angelUpgrade) + +允许[机器人 ](../block/robot.md)在空中凭空放置方块,而不用搭一个柱子挨着 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/apu1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/apu1.md new file mode 100644 index 000000000..080add58f --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/apu1.md @@ -0,0 +1,5 @@ +# APU + +![Awesomest Probability Unifier.](oredict:oc:apu1) + +[CPU](cpu1.md)和[显卡](graphicsCard1.md)的结合,AMD(农企)首创. 可以省一个格子,当然了这块显卡性能肯定没有独显厉害www \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/apu2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/apu2.md new file mode 100644 index 000000000..cc94b771d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/apu2.md @@ -0,0 +1 @@ +#REDIRECT apu1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/arrowKeys.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/arrowKeys.md new file mode 100644 index 000000000..2a5967ac8 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/arrowKeys.md @@ -0,0 +1,5 @@ +#方向键 + +![Just be grateful it's not made from arrows.](oredict:oc:materialArrowKey) + +At the risk of repeating myself: 制造 [键盘](../block/keyboard.md)的配件. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade1.md new file mode 100644 index 000000000..70fe82527 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade1.md @@ -0,0 +1,5 @@ +#电池升级 + +![Made of Metal.](oredict:oc:batteryUpgrade1) + +三星电子,超长待机!由真实大帝代言。 用于[机器人](../block/robot.md) , [平板](tablet.md),让他们可以在野外坚持更久,等级越高存的越多。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade2.md new file mode 100644 index 000000000..0281a4533 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade2.md @@ -0,0 +1 @@ +#REDIRECT batteryUpgrade1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade3.md new file mode 100644 index 000000000..0281a4533 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/batteryUpgrade3.md @@ -0,0 +1 @@ +#REDIRECT batteryUpgrade1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/buttonGroup.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/buttonGroup.md new file mode 100644 index 000000000..90e31bd09 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/buttonGroup.md @@ -0,0 +1,4 @@ +# 按钮组 + +![Needs more buttons.](oredict:oc:materialButtonGroup) +用于制造[键盘](../block/keyboard.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/card.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/card.md new file mode 100644 index 000000000..45f7a49d7 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/card.md @@ -0,0 +1,5 @@ +# 卡 + +![Can't be read.](oredict:oc:materialCard) + +通用合成组件 ( [显卡](graphicsCard1.md) [网卡](lanCard.md)等等). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md new file mode 100644 index 000000000..2878b549f --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md @@ -0,0 +1,5 @@ +# 卡包 + +![Can haz cards!](oredict:oc:cardContainer1) + +[机器人](../block/robot.md) 的物品栏升级之一,允许热插拔卡。单个槽最大卡数等于这个升级的等级. 这个容器的复杂度是一般的两倍. 参见 [here](../block/robot.md) 机器人复杂度 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer2.md new file mode 100644 index 000000000..16d29de27 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer2.md @@ -0,0 +1 @@ +#REDIRECT cardContainer1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer3.md new file mode 100644 index 000000000..16d29de27 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer3.md @@ -0,0 +1 @@ +#REDIRECT cardContainer1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/chamelium.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chamelium.md new file mode 100644 index 000000000..8edc00cd3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chamelium.md @@ -0,0 +1,9 @@ +# 油墨 + +![From Chameleon, in case you were wondering.](oredict:oc:chamelium) + +油墨是用于3D打印的有序合成物品. 它本身没什么特色,只能拿来盖盖单色的墙. + +你可以把它做成 [油墨块](../block/chameliumBlock.md). + +正如tip所说, 吃下去的后果不可描述,小心使用,或者最好就别吃他 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip1.md new file mode 100644 index 000000000..6c024049f --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip1.md @@ -0,0 +1,5 @@ +# 微芯片 + +![Not the edible ones.](oredict:oc:circuitChip1) + +微芯片在合成中很重要.他们有不同的型号,对应不同型号的产物 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip2.md new file mode 100644 index 000000000..5679bbdeb --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip2.md @@ -0,0 +1 @@ +#REDIRECT chip1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip3.md new file mode 100644 index 000000000..5679bbdeb --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chip3.md @@ -0,0 +1 @@ +#REDIRECT chip1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/chunkloaderUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chunkloaderUpgrade.md new file mode 100644 index 000000000..4c61216f3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/chunkloaderUpgrade.md @@ -0,0 +1,7 @@ +#区块加载升级 + +![Not going anywhere.](oredict:oc:chunkloaderUpgrade) + +可以被安装在任意设备(如[机器人](../block/robot.md) 和 [微控制器](../block/microcontroller.md)) 来允许他加载所在的区块和相邻的区块. 这消耗能源,可以被组件API开关. + +设备启动时自动启用, 在关机时自动停止. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/circuitBoard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/circuitBoard.md new file mode 100644 index 000000000..511fdfea3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/circuitBoard.md @@ -0,0 +1,5 @@ +# 电路板 + +![Needs more gold.](oredict:oc:materialCircuitBoard) + +从粗电路板合出来的东西 [raw circuit boards](rawCircuitBoard.md) 用于制作 [印刷电路板](printedCircuitBoard.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus1.md new file mode 100644 index 000000000..ff9da1eb4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus1.md @@ -0,0 +1,10 @@ +# 组件总线 + +![I need mooooore.](oredict:oc:componentBus1) + +组件总线是[服务器](server1.md)专用的升级, 允许服务器[server](server1.md) 和更多的组件同时通讯, 而不是当机. 像CPU一样有级别,高级总线可以允许服务器通讯更多的组件 + +总线通讯限制如下 +- T1: 8 +- T2: 12 +- T3: 16 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus2.md new file mode 100644 index 000000000..a49cd378a --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus2.md @@ -0,0 +1 @@ +#REDIRECT componentBus1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus3.md new file mode 100644 index 000000000..a49cd378a --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/componentBus3.md @@ -0,0 +1 @@ +#REDIRECT componentBus1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/controlUnit.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/controlUnit.md new file mode 100644 index 000000000..5cd914623 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/controlUnit.md @@ -0,0 +1,5 @@ +# 控制单元 + +![With built-in cruise control.](oredict:oc:materialCU) + +高级电路的合成单元,如 [CPU](cpu1.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu1.md new file mode 100644 index 000000000..2f2ee2b32 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu1.md @@ -0,0 +1,14 @@ +# CPU + +![Braaainz.](oredict:oc:cpu1) + +[电脑](../general/computer.md) 和 [服务器](server1.md)的中央处理器. 定义了 [电脑](../general/computer.md)架构, 以及连接组件上限 级别越高,每tick可以进行的函数调用越多 或者说,高级就牛逼 + +CPU的组件上限: +- T1: 8 +- T2: 12 +- T3: 16 + +[服务器](server1.md)里面, 这个数量可以通过安装 [组件总线](componentBus1.md)提升 + +如果连接数量超过上限,会无法开机,运行中的机器会宕机。 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu2.md new file mode 100644 index 000000000..b62149ec4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu2.md @@ -0,0 +1 @@ +#REDIRECT cpu1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu3.md new file mode 100644 index 000000000..b62149ec4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cpu3.md @@ -0,0 +1 @@ +#REDIRECT cpu1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/craftingUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/craftingUpgrade.md new file mode 100644 index 000000000..8fb064307 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/craftingUpgrade.md @@ -0,0 +1,5 @@ +# 合成升级 + +![Crafty.](oredict:oc:craftingUpgrade) + +允许 [机器人](../block/robot.md)在自己的[物品栏](../item/inventoryUpgrade.md)进行无序和有序合成. 左上的3X3格子将会成为合成空间, 物品将根据合成表重新排布. 合成结果将会回到机器人物品栏. 捡起物品后,会被放在指定格子; 失败则会放在相邻的空格子. 如果没有格子了,物品会被丢出去 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cuttingWire.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cuttingWire.md new file mode 100644 index 000000000..f9f7ee1fc --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cuttingWire.md @@ -0,0 +1,5 @@ +# 剥过的线 + +![Not a garrote. Honest.](oredict:oc:materialCuttingWire) + +在困难合成会用到的东西,用于合成 [原始电路板](rawCircuitBoard.md). 很蛋疼 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard1.md new file mode 100644 index 000000000..3d7c94fee --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard1.md @@ -0,0 +1,7 @@ +# 数据卡 + +![Contrary to popular belief, it does not store data.](oredict:oc:dataCard1) + +一种提供了多个难以在架构上实现,或者是在那里跑的很慢的算法的卡,可以看作是协处理器,用于处理hash,压缩等操作 + +注意每次调用处理的数据有限,并且很吃能量. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard2.md new file mode 100644 index 000000000..13f060838 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard2.md @@ -0,0 +1 @@ +#REDIRECT dataCard1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard3.md new file mode 100644 index 000000000..13f060838 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/dataCard3.md @@ -0,0 +1 @@ +#REDIRECT dataCard1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade1.md new file mode 100644 index 000000000..14b9d8211 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade1.md @@ -0,0 +1,10 @@ +# 数据库升级 + +![Living in the database.](oredict:oc:databaseUpgrade1) + +可以配置为存储一系列物品信息, 进而被其他组件所用. 尤其是那种名字一样但是NBT标签不一样的物品, 回调里面并不会作为物品描述符的一部分. + +配置数据库, 首先右键打开.把你想配置的物品放在上面的物品栏,会存储一个假的物品 + +也可以被 +[物品栏控制器](inventoryControllerUpgrade.md) 和[扫描器](../block/geolyzer.md)的组件API配置 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade2.md new file mode 100644 index 000000000..196a017a3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade2.md @@ -0,0 +1 @@ +#REDIRECT databaseUpgrade1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade3.md new file mode 100644 index 000000000..196a017a3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/databaseUpgrade3.md @@ -0,0 +1 @@ +#REDIRECT databaseUpgrade1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/debugCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/debugCard.md new file mode 100644 index 000000000..aa35df5a7 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/debugCard.md @@ -0,0 +1,9 @@ +# Debug Card + +![Wait, if I- oooooh.](item:OpenComputers:item@73) + +The debug card is a creative-only item that was originally only intended to make debugging things easier, by automating some processes. It has since gotten a bunch more functionality, making it quite useful for custom map-making. + +Note that you can use sneak-activate while holding the card to bind it to you or unbind it, meaning `runCommand` will be performed using your permission levels instead of the default OpenComputers ones. + +A debug card can receive messages similar to a [linked card](linkedCard.md), firing a `debug_message` event. You can send such a message using either another debug card's `sendDebugMessage` or the Minecraft command `/oc_sendDebugMessage` (or `/oc_sdbg`). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/disk.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/disk.md new file mode 100644 index 000000000..30e7f69c1 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/disk.md @@ -0,0 +1,5 @@ +# 磁盘 + +![World. RIP Terry Pratchett.](oredict:oc:materialDisk) + +基础组件,用于合成软盘和硬盘 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/diskDriveMountable.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/diskDriveMountable.md new file mode 100644 index 000000000..9d0cb41a1 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/diskDriveMountable.md @@ -0,0 +1,5 @@ +# 可挂载的磁盘 + +![Snuggly](oredict:oc:diskDriveMountable) + +大体相当于[软盘驱动器](../block/diskDrive.md),只是被安装到 [机架](../block/rack.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/drone.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/drone.md new file mode 100644 index 000000000..b4a2778c1 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/drone.md @@ -0,0 +1,5 @@ +# 无人机 + +![Big brother is trying to watch you.](item:OpenComputers:item@84) + +通过 [无人机箱](droneCase1.md) 在 [装配机](../block/assembler.md)制造. 他们是实体的[机器人](../block/robot.md), 便宜但功能也受限.移动比 [机器人](../block/robot.md)快些, 通常由[电脑](../general/computer.md)的程序控制. 需要烧写过的 [E2PROM](eeprom.md) 启动 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase1.md new file mode 100644 index 000000000..ddf60c090 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase1.md @@ -0,0 +1,33 @@ +# 无人机箱 + +![Droning on.](oredict:oc:droneCase1) + +无人机箱[drones](drone.md) 被用于在 [装配机](../block/assembler.md)组装机器人. [无人机](drone.md) 是轻量, 快速的便携机器,其功能受限(只有少量的升级和插槽). 不像 [机器热](../block/robot.md) 能使用工具, 它们也只能和世界进行有限的交互. + +速度也下降,但能源消耗也很少. 他们很胜任于少量的搬运物品和侦察. 将[无人机](drone.md) 和 [机器人](../block/robot.md) 配对是极好的, [机器人](../block/robot.md) 进行困难的运算, [无人机](drone.md) 作为传感器和执行机构. + +像 [单片机](../block/microcontroller.md)一样, [无人机](drone.md) 只能用[E2PROM](eeprom.md)编程.E2PROM通过将无人机和另一块E2PROM合成来改变,上一块E2PROM会返还 +T1无人机箱可以带这些: +- 1x T1 [CPU](cpu1.md) +- 1x T1 [内存](ram1.md) +- 1x [E2PROM](eeprom.md) +- 1x T2扩展卡 +- 1x T1扩展卡 +- 1x T1升级 +- 1x T2升级 + +T2无人机箱可以带这些: +- 1x T2 [CPU](cpu1.md) +- 2x T2 [内存](ram1.md) +- 1x [EEPROM](eeprom.md) +- 2x T2扩展卡 +- 1x T1升级 +- 1x T2升级 +- 1x T3升级 + +T4无人机箱可以带这些: +- 1x T3 [CPU](cpu3.md) +- 2x T3 [RAM](ram5.md) +- 1x [EEPROM](eeprom.md) +- 3x T3扩展卡 +- 9x T3升级 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase2.md new file mode 100644 index 000000000..702933ee7 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCase2.md @@ -0,0 +1 @@ +#REDIRECT droneCase1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCaseCreative.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCaseCreative.md new file mode 100644 index 000000000..702933ee7 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/droneCaseCreative.md @@ -0,0 +1 @@ +#REDIRECT droneCase1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/eeprom.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/eeprom.md new file mode 100644 index 000000000..ce36ff5fd --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/eeprom.md @@ -0,0 +1,6 @@ +# E2PROM + +![Let's get this party started.](oredict:oc:eeprom) + +包含了电脑的启动代码,相当于BIOS,数据存储于raw 字节数组,需要编译烧写 +E2PROM 被用于电脑的开机启动 [无人机](drone.md) 和 [单片机](../block/microcontroller.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/experienceUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/experienceUpgrade.md new file mode 100644 index 000000000..6597a5bb9 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/experienceUpgrade.md @@ -0,0 +1,9 @@ +# 经验升级 + +![This makes no sense, but it's cool.](oredict:oc:experienceUpgrade) + +允许 [机器人](../block/robot.md) and [无人机](drone.md) 通过杀死怪物和挖矿收经验,每个升级存30级经验, 并且每一级都有加成,例如挖矿加速 + +[机器人](../block/robot.md) 10机得到金子, [robots](../block/robot.md)20级得到钻石 + +经验存在升级里面,认升级不认设备 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/floppy.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/floppy.md new file mode 100644 index 000000000..c2918a392 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/floppy.md @@ -0,0 +1,5 @@ +# 软盘 + +![Many inches.](oredict:oc:floppy) + +最便宜的存储设备了,用于早期交换数据 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/generatorUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/generatorUpgrade.md new file mode 100644 index 000000000..0956385d8 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/generatorUpgrade.md @@ -0,0 +1,10 @@ +# 发电机升级 + +![Generator X.](oredict:oc:generatorUpgrade) + +允许设备自主发电。 目前仅支持固体燃料比如煤. 内部有存储燃料的物品栏. 剩余的燃料可以用合适的组件API被拿走. 移除升级会使里面的东西掉出来 + +这个东西的效率比充电机低 + +所以还是用充电机好了 + diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard1.md new file mode 100644 index 000000000..3a41c2f62 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard1.md @@ -0,0 +1,5 @@ +# 显卡(GTX 690!) + +![Fancy images.](oredict:oc:graphicsCard1) + +对大多数计算机都非常重要[computers](../general/computer.md),显卡允许 [计算机](../general/computer.md)在连接的[屏幕](../block/screen1.md)显示字符. 有数个档次,如同屏幕那样支持多个分辨率 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard2.md new file mode 100644 index 000000000..2503631a4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard2.md @@ -0,0 +1 @@ +#REDIRECT graphicsCard1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard3.md new file mode 100644 index 000000000..2503631a4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/graphicsCard3.md @@ -0,0 +1 @@ +#REDIRECT graphicsCard1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md new file mode 100644 index 000000000..291049ed2 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md @@ -0,0 +1,5 @@ +# 硬盘驱动器 + +![Spaaaace.](oredict:oc:hdd1) + +熟悉的存储器,存储速度一样,档次决定空间大小,有的机器只能用硬盘. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd2.md new file mode 100644 index 000000000..31a59d438 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd2.md @@ -0,0 +1 @@ +#REDIRECT hdd1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd3.md new file mode 100644 index 000000000..31a59d438 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd3.md @@ -0,0 +1 @@ +#REDIRECT hdd1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md new file mode 100644 index 000000000..26a5b6885 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md @@ -0,0 +1,9 @@ +# 悬浮鞋子 + +![Step on it.](oredict:oc:hoverBoots) + +如果不想去编程 [无人机](drone.md), 有个变通的办法: 踏脚石! + +鞋子有个特点: 只要有能量你就能跳得更高, 然后吸收落地的冲击力. 意思是你可以跳上4格子高然后将落地的冲击降到30%,也就是说你可以在4格子高跳下而不掉血. + +可以通过[充电机](../block/charger.md) ,AE2 充电器,工业充电盒子,或者是TE的充电器来充能, 靴子可以任意用染料染色 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md new file mode 100644 index 000000000..406ae4332 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md @@ -0,0 +1,16 @@ +# 悬浮升级 + +![Float like a feather.](oredict:oc:hoverUpgrade1) + +允许 [机器人](../block/robot.md) 飞得更高. 缺省状态下机器人只能往上走8格子. 平常因为这足够爬墙所以这足够了. +规律是这样的: +- 机器人只会在起点和终点都有效的情况下才会动 (e.g.允许搭桥). +- 机器人下方的位置永远有效(也就是说任何时候都可以往下走). +- 一个固体方块上方的飞行上限内的格子都是有效的 +- 拥有正对当前位置相邻的表面的点是有效的 (允许爬墙). + +这几个规则演示一下就是这样: + +![Robot movement rules visualized.](opencomputers:doc/img/robotMovement.png) + +如果不想被地球引力限制就安一个吧 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade2.md new file mode 100644 index 000000000..bad6728c9 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade2.md @@ -0,0 +1 @@ +#REDIRECT hoverUpgrade1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md new file mode 100644 index 000000000..446690ba3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md @@ -0,0 +1,97 @@ +# Items + +This index lists all of the documented items in OpenComputers. If you're looking for a block, check out the [block index](../block/index.md) instead. + +Keep in mind that some of these may not be available, depending on the recipe set used. + +## Tools +* [分析仪](analyzer.md) +* [手册](manual.md) +* [远控终端](terminal.md) +* [纹理拾取器](texturePicker.md) +* [扳手](wrench.md) + +## Devices +* [无人机](drone.md) +* [服务器](server1.md) +* [平板](tablet.md) + +## Components + +### Cards +* [抽象总线卡](abstractBusCard.md) +* [数据卡](dataCard1.md) +* [调试卡(创造)](debugCard.md) (aka AMI) +* [显卡](graphicsCard1.md) +* [因特网卡](internetCard.md) +* [连接卡](linkedCard.md) +* [网卡](lanCard.md) +* [红石卡](redstoneCard1.md) +* [无线网卡](wlanCard.md) +* [世界传感器卡](worldSensorCard.md) + +### Upgrades +* [天使升级](angelUpgrade.md) +* [电池升级](batteryUpgrade1.md) +* [卡槽升级](cardContainer1.md) +* [区块加载升级](chunkloaderUpgrade.md) +* [合成升级](craftingUpgrade.md) +* [数据库升级](databaseUpgrade1.md) +* [经验升级](experienceUpgrade.md) +* [发电机升级](generatorUpgrade.md) +* [悬浮升级](hoverUpgrade1.md) +* [物品栏控制器升级](inventoryControllerUpgrade.md) +* [物品栏升级](inventoryUpgrade.md) +* [拴绳升级](leashUpgrade.md) +* [MFU](mfu.md) +* [导航升级](navigationUpgrade.md) +* [活塞升级](pistonUpgrade.md) +* [告示牌升级](signUpgrade.md) +* [太阳能发电机升级](solarGeneratorUpgrade.md) +* [储罐控制升级](tankControllerUpgrade.md) +* [储罐升级](tankUpgrade.md) +* [牵引光束升级](tractorBeamUpgrade.md) +* [交易升级](tradingUpgrade.md) +* [升级箱](upgradeContainer1.md) + +### Rack Mountables +* [软驱](diskDriveMountable.md) +* [服务器](server1.md) +* [终端服务器](terminalServer.md) + +### Other +* [APU](apu1.md) +* [组件总线](componentBus1.md) +* [CPU](cpu1.md) +* [E2PROM](eeprom.md) +* [软盘](floppy.md) +* [硬盘驱动器](hdd1.md) +* [内存](ram1.md) + +## Crafting +* [酸液](acid.md) +* [逻辑运算单元](alu.md) +* [方向键](arrowKeys.md) +* [按钮组](buttonGroup.md) +* [卡片](card.md) +* [电路板](circuitBoard.md) +* [控制单元](controlUnit.md) +* [剥过的线](cuttingWire.md) +* [磁盘](disk.md) +* [Interweb](interweb.md) +* [微芯片](chip1.md) +* [数字键](numPad.md) +* [印刷电路板](printedCircuitBoard.md) +* [粗电路板](rawCircuitBoard.md) +* [晶闸管](transistor.md) + +## Assembling / Printing +* [油墨](chamelium.md) +* [墨盒](inkCartridge.md) +* [无人机箱](droneCase1.md) +* [微控制器箱](microcontrollerCase1.md) +* [平板壳子](tabletCase1.md) + +## Other +* [悬浮鞋](hoverBoots.md) +* [纳米机械](nanomachines.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridge.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridge.md new file mode 100644 index 000000000..e4d65d9ea --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridge.md @@ -0,0 +1,5 @@ +# Ink Cartridge + +![The colors of the rainbow.](oredict:oc:inkCartridge) + +墨盒为 [3D printers](../block/printer.md)供墨. 可以用染料来加满, 不过不是太方便. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridgeEmpty.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridgeEmpty.md new file mode 100644 index 000000000..2895df3c8 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inkCartridgeEmpty.md @@ -0,0 +1 @@ +#REDIRECT inkCartridge.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/internetCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/internetCard.md new file mode 100644 index 000000000..b8e2f6dd5 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/internetCard.md @@ -0,0 +1,7 @@ +# 因特网卡 + +![Cat videos in 3, 2, ...](oredict:oc:internetCard) + +使得 [电脑](../general/computer.md) 能够向因特网发送请求,包括Http和tcp客户端套接字。 + +安装因特网卡会向电脑安装一批网络应用, 比如pastebin命令,通过神秘代码安装网上大神的软件,或者是wget,下载特定URL的文件。 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/interweb.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/interweb.md new file mode 100644 index 000000000..235ecb277 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/interweb.md @@ -0,0 +1,5 @@ +# Interweb + +![A website is a place where there's cobweb.](oredict:oc:materialInterweb) + +用于长距离通信. 常用于 [因特网卡](internetCard.md) 和 [链接卡](linkedCard.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryControllerUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryControllerUpgrade.md new file mode 100644 index 000000000..54b6f7069 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryControllerUpgrade.md @@ -0,0 +1,9 @@ +# Inventory Controller + +![I'm in control.](oredict:oc:inventoryControllerUpgrade) + +物品栏控制器为[机器人](../block/robot.md) 和 [无人机](drone.md)提供了额外的物品栏交互能力. 允许在丢下或者捡起物品时显式指定一个外部的物品栏. 允许设备读取详细的物品信息. 最后他还给 [机器人](../block/robot.md) 添加了一个不借助外力更换自身装备的途径. + +可以被放在 [适配器](../block/adapter.md), 为[适配器](../block/adapter.md) 提供了探测相邻方块的物品的能力. 但是不能捡起或者丢出物品。 + +另见: [转置器](../block/transposer.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryUpgrade.md new file mode 100644 index 000000000..7c7c60ea4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/inventoryUpgrade.md @@ -0,0 +1,7 @@ +# Inventory Upgrade + +![Where does it keep all this stuff...](oredict:oc:inventoryUpgrade) + +物品栏升级使得[机器人](../block/robot.md) 和 [无人机](drone.md)拥有了物品栏. 每个升级为 [机器人](../block/robot.md) 提供16个槽位, 最大扩展到64; 为[无人机](drone.md) 提供4个槽位, 最大扩展到8. + +如果不安装这个东西,那么他们就无法捡起或者丢掉物品 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/lanCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/lanCard.md new file mode 100644 index 000000000..9802a811e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/lanCard.md @@ -0,0 +1,5 @@ +# Network Card + +![Enter the network.](oredict:oc:lanCard) + +网卡允许 [电脑](../general/computer.md) 在本地网络内收发消息. 消息(或者封包) 可向子网广播, 或者是投送至特定的网络地址. [中继器](../block/relay.md) 可以用来桥接不同的子网,使之互相通信. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/leashUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/leashUpgrade.md new file mode 100644 index 000000000..c3d899538 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/leashUpgrade.md @@ -0,0 +1,5 @@ +# Leash Upgrade + +![-redacted- ~ Vexatos 2015](oredict:oc:leashUpgrade) + +拴绳升级允许无人机和机器人去牵引生物。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/linkedCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/linkedCard.md new file mode 100644 index 000000000..429cb1035 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/linkedCard.md @@ -0,0 +1,5 @@ +# Linked Card + +![I feel we some kind of connection.](oredict:oc:linkedCard) + +链接卡是特化的[网卡](lanCard.md). 只能成对使用,用来提供P2P通讯. 可以跨维度无限制距离通讯(只要能创造环境的话). \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/manual.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/manual.md new file mode 100644 index 000000000..d6052b2d0 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/manual.md @@ -0,0 +1,17 @@ +# Manual + +![A good read.](oredict:oc:manual) + +嗯,这是OC手册,就像是读wiki一样 + +左键点击链接可以导航到对应位置,跳跃或者右击返回上一级,Esc退出 + +由loveyanbei(https://github.com/loveyanbei) 汉化 + +如果有问题可以访问 http://ocdoc.cil.li 查看wiki + +对翻译有疑问可以自行pull request + +如果mod有bug,可到bug tracker 提问 https://github.com/MightyPirates/OpenComputers/issues + +![Your new best friend.](opencomputers:doc/img/manual.png) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md new file mode 100644 index 000000000..65571a407 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md @@ -0,0 +1,7 @@ +# MFU + +![You will never know the true meaning of this acronym.](oredict:oc:mfu) + +此升级提供了一个远程的 [适配器](../block/adapter.md). 在任意方块边上蹲下并右键都会把它绑定到特定位置. 然后放到附近的适配器里面 (这个附近很有限) 然后适配器就会像刚好在你绑定的那个边上放着那样工作(一般的适配器要挨着,这里隔了一点距离)! + +记住,保持远程适配器链接需要能量. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase1.md new file mode 100644 index 000000000..4a2930e4a --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase1.md @@ -0,0 +1,31 @@ +# Microcontroller Case + +![It's so cute.](oredict:oc:microcontrollerCase1) + +微控制器盒是建造[单片机](../block/microcontroller.md) 的基础. [单片机](../block/microcontroller.md) 是极其简化的 [电脑](../general/computer.md). 只有少量组件,并被设计为特定用途, 比如转发或者处理红石信号, 以及处理网路消息. + +它没有文件系统. 所有程序都被烧写进了[E2PROMPROM](eeprom.md).这个芯片可以通过和一个微控制器合成来替换[microcontrollers](../block/microcontroller.md),旧的会返还. + +单片机的能源消耗很小. + +T1单片机配件: +- 1x T1 [CPU](cpu1.md) +- 1x T1 [内存](ram1.md) +- 1x [E2PROM](eeprom.md) +- 2x T1扩展卡 +- 1x T2升级 + +T2单片机配件: +- 1x T1 [CPU](cpu1.md) +- 2x T1 [RAM](ram1.md) +- 1x [E2PROM](eeprom.md) +- 1x T2扩展卡 +- 1x T1扩展卡 +- 1x T2升级 + +T3单片机配件: +- 1x T3 [CPU](cpu3.md) +- 2x T3 [内存](ram5.md) +- 1x [E2PROM](eeprom.md) +- 3x T3扩展卡 +- 9x T3升级 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase2.md new file mode 100644 index 000000000..d3a9af68d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCase2.md @@ -0,0 +1 @@ +#REDIRECT microcontrollerCase1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCaseCreative.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCaseCreative.md new file mode 100644 index 000000000..d3a9af68d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/microcontrollerCaseCreative.md @@ -0,0 +1 @@ +#REDIRECT microcontrollerCase1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/nanomachines.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/nanomachines.md new file mode 100644 index 000000000..c39f02dea --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/nanomachines.md @@ -0,0 +1,34 @@ +# 纳米机械 + +![Nanomachines, son.](oredict:oc:nanomachines) + +这些小机械可以让你变得更快更高更强,或者干掉你. 有时候这些是同时的! 纳米机械往他们寄生的玩家身上添加buff和debuff. 吃下他们就可以安装了! + +安装以后你的屏幕上会显示出这些机械还有多少能源运作. 站在[充电机](../block/charger.md)附近就可以充电.装的机器越多,能耗越大. + +纳米机器提供了特定数量可以被玩家触发的输入,效果从玩家周身的粒子效果到药水效果选择,以至于更多奇怪的功能。 + +触发那些输入取决于当前纳米机器的配置, 每次配置时,实际的连接情况是随机的. 这意味着你要尝试启用不同的输入来验证他们做了什么. 如果对你的配置不满, 你可以吃下一批新的机器重新配置. 如果你要完全清掉纳米机器,喝点 [酸液](acid.md). 注意一次启用过多输入会给你带来debuff! + +缺省情况下纳米机器是待机状态. 你要用无线消息来控制, 因此很有必要带一个安了无线网卡的[平板](tablet.md). 纳米机器只会对两格子内机器发出的信号有反应, 不限端口不限机器! + +纳米机器使用一套简单的协议: 每个封包必须包含数个部分, 第一部分称为"header" 并且必须是 `nanomachines`这个字符串. 第二部分是命令名. 其他部分是命令参数. 以下命令可用,格式为 `commandName(arg1, ...)`: + +- `setResponsePort(port:number)` - 设定纳米机器响应的端口,命令的响应在此接受. +- `getPowerState()` - 返回当前能量和最大值. +- `getHealth()` - 返回当前玩家的生命. +- `getHunger()` - 返回当前玩家的饥饿值. +- `getAge()` - 返回当前玩家的存活时间(秒) +1s. +- `getName()` - 返回玩家的名字. +- `getExperience()` - 返回玩家的经验数量. +- `getTotalInputCount()` - 返回可用输入端口总数. +- `getSafeActiveInputs()` - 返回安全的输入端口总数. +- `getMaxActiveInputs()` - 返回活动输入数量最大值. +- `getInput(index:number)` - 得到对应索引值处的输入状态. +- `setInput(index:number, value:boolean)` - 设定对应索引处的输入状态. +- `getActiveEffects()` - 返回活动的纳米机器作用列表. 注意部分效果是不显示的. +- `saveConfiguration()` - 返回物品栏里面的纳米机器, 将会把当前的配置存到他们里面. + +OpenOS用例: +- `component.modem.broadcast(1, "nanomachines", "setInput", 1, true)` 将启用第一输入. +- `component.modem.broadcast(1, "nanomachines", "getHealth")` 将得到玩家的血量. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/navigationUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/navigationUpgrade.md new file mode 100644 index 000000000..ca3820f49 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/navigationUpgrade.md @@ -0,0 +1,9 @@ +# Navigation Upgrade + +![I'm lost. Again.](oredict:oc:navigationUpgrade) + +导航升级返回机器的位置和朝向. 坐标是相对用于合成这个升级的地图的中心而言的, 他的作用范围也限制在哪块地图的大小上面. + +内部地图可以通过重新合成来更新,旧地图返还. + +推荐与 [路径点](../block/waypoint.md)配合食用. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/numPad.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/numPad.md new file mode 100644 index 000000000..8e8ff44be --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/numPad.md @@ -0,0 +1,5 @@ +# Numeric Keypad + +![Check for fingerprints.](oredict:oc:materialNumPad) + +数字键是 [键盘](../block/keyboard.md).的配件,允许输入数字. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/pistonUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/pistonUpgrade.md new file mode 100644 index 000000000..6465ac9eb --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/pistonUpgrade.md @@ -0,0 +1,7 @@ +# Piston Upgrade + +![Push it.](oredict:oc:pistonUpgrade) + +活塞升级让设备的行为变得像原版活塞那样. 安装后, 一个叫`push()`的函数可用. 调用时设备将会向面对的方向推出去. [机器人](../block/robot.md) 和 [单片机](../block/microcontroller.md)是方块的前方这个面; 对于[平板](tablet.md)是玩家的面对方向. + +推方块的行为遵循原版活塞. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/printedCircuitBoard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/printedCircuitBoard.md new file mode 100644 index 000000000..e617d46cb --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/printedCircuitBoard.md @@ -0,0 +1,5 @@ +# Printed Circuit Board + +![AKA PCB](oredict:oc:materialCircuitBoardPrinted) + +电路板和 [晶体管](transistor.md)一样, 都是基础合成材料. 用于制作多种元件, [卡片](card.md) 和大量的[方块](../block/index.md). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram1.md new file mode 100644 index 000000000..4d1278a0d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram1.md @@ -0,0 +1,17 @@ +# Memory + +![Do you remember, dancing in September~](oredict:oc:ram1) + +内存和 [CPU](cpu1.md)一样都是[电脑](../general/computer.md)的核心部件. 根据 [CPU](cpu1.md)的架构, 内存决定了于电脑能做什么,不能做什么.以标准LUA为例, 内存条控制了脚本最大分配多少存储空间.这意味着你要安装更大的内存条跑更大的程序. + +缺省状态下内存条的规格: +- T1: 192KB +- T1.5: 256KB +- T2: 384KB +- T2.5: 512KB +- T3: 768KB +- T3.5: 1024KB + +仅对LUA架构有效 + +此容量可以在配置修改 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram2.md new file mode 100644 index 000000000..94679a04e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram2.md @@ -0,0 +1 @@ +#REDIRECT ram1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram3.md new file mode 100644 index 000000000..94679a04e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram3.md @@ -0,0 +1 @@ +#REDIRECT ram1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram4.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram4.md new file mode 100644 index 000000000..94679a04e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram4.md @@ -0,0 +1 @@ +#REDIRECT ram1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram5.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram5.md new file mode 100644 index 000000000..94679a04e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram5.md @@ -0,0 +1 @@ +#REDIRECT ram1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram6.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram6.md new file mode 100644 index 000000000..94679a04e --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/ram6.md @@ -0,0 +1 @@ +#REDIRECT ram1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/rawCircuitBoard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/rawCircuitBoard.md new file mode 100644 index 000000000..5d1f811e0 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/rawCircuitBoard.md @@ -0,0 +1,5 @@ +# Raw Circuit Board + +![Not sushi.](oredict:oc:materialCircuitBoardRaw) + +粗电路板,中间合成材料, 用来合成 [电路板](circuitBoard.md) (或者是 [印刷电路板](printedCircuitBoard.md)). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard1.md new file mode 100644 index 000000000..91771c907 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard1.md @@ -0,0 +1,9 @@ +# Redstone Card + +![Seeing red.](oredict:oc:redstoneCard1) + +红石卡让[电脑](../general/computer.md) 可以读写相邻方块的红石信号.输入信号变化时, 信号将输入[电脑](../general/computer.md). + +如果有mod可以提供多个红石信号捆绑同时传递的能力, 如Redlogic,MFR,Redpower; 或者是提供了无线红石传递的mod,比如 WR-CBE,或者Slimevoid's Wireless,那么将有一个二级红石卡来处理和他们的通讯. + +输入面是相对于机箱,机器人,机架自身的,也就是说,当你站在电脑的前面(正面)的时候,`sides.right` 指的是你左边(你面对的方向左边). diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard2.md new file mode 100644 index 000000000..7480d5267 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/redstoneCard2.md @@ -0,0 +1 @@ +#REDIRECT redstoneCard1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/server1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/server1.md new file mode 100644 index 000000000..bce7ffaec --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/server1.md @@ -0,0 +1,39 @@ +# Server + +![Serves u right.](oredict:oc:server1) + +服务器是高级 [电脑](../general/computer.md). 可以通过把物品拿在手上并使用来配置, 就像打开背包和箱子一样,也可以放在[机架](../block/rack.md)里面,通过站在机架的“正面”并激活它来配置. 参见[机架](../block/rack.md) entry. + +T1服务器配置: +- 1x T2 [CPU](cpu2.md) +- 2x T2 [内存](ram3.md) +- 2x T2 [硬盘](hdd2.md) +- 1x T2 [组件总线](componentBus2.md) +- 2x T2 扩展卡 +- 1x [E2PROM](eeprom.md) + +T2服务器配置: +- 1x T3 [CPU](cpu3.md) +- 3x T3 [内存](ram5.md) +- 3x T3 [硬盘](hdd3.md) +- 2x T3 [组件总线](componentBus3.md) +- 2x T2扩展卡 +- 1x T3扩展卡 +- 1x [E2PROM](eeprom.md) + +T3服务器配置: +- 1x T3 [CPU](cpu3.md) +- 4x T3 [内存](ram5.md) +- 4x T3 [硬盘](hdd3.md) +- 3x T3 [组件总线](componentBus3.md) +- 2x T2扩展卡 +- 2x T3扩展卡 +- 1x [E2PROM](eeprom.md) + +T4服务器配置: +- 1x T3 [CPU](cpu3.md) +- 4x T3 [内存](ram5.md) +- 4x T3 [硬盘](hdd3.md) +- 3x T3 [组件总线](componentBus3.md) +- 4x T3扩展卡 +- 1x [E2PROM](eeprom.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/server2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/server2.md new file mode 100644 index 000000000..d02b2f850 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/server2.md @@ -0,0 +1 @@ +#REDIRECT server1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/server3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/server3.md new file mode 100644 index 000000000..d02b2f850 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/server3.md @@ -0,0 +1 @@ +#REDIRECT server1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/serverCreative.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/serverCreative.md new file mode 100644 index 000000000..d02b2f850 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/serverCreative.md @@ -0,0 +1 @@ +#REDIRECT server1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/signUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/signUpgrade.md new file mode 100644 index 000000000..fcf21f5c3 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/signUpgrade.md @@ -0,0 +1,5 @@ +# Sign I/O + +![I see the signs on the wall.](oredict:oc:signUpgrade) + +允许设备和告示牌交互. 可以读取牌子的信息,改变牌子的信息. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/solarGeneratorUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/solarGeneratorUpgrade.md new file mode 100644 index 000000000..3ddf67b14 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/solarGeneratorUpgrade.md @@ -0,0 +1,5 @@ +# Solar Generator + +![Walking on the sun.](oredict:oc:solarGeneratorUpgrade) + +太阳能发电机升级可以安装到[机器人](../block/robot.md), [无人机](drone.md) 和 [平板](tablet.md) 上面. 只会在阳光直射的时候工作; 设备被天气影响或者处于封闭空间时是不工作的,能量产生速度很慢 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md new file mode 100644 index 000000000..ce86619f6 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md @@ -0,0 +1,13 @@ +# Tablet + +![Touch me if you can.](item:OpenComputers:item@68) + +通过将[平板外壳](tabletCase1.md)放到[组装机](../block/assembler.md), 来配置并组装平板. 平板是一种小巧的,无法直接交互世界的电脑,比如[基础红石卡](redstoneCard1.md)就没法用. 不过另一批就可以,比如 [告示牌升级](signUpgrade.md),[活塞升级](pistonUpgrade.md). + +T2平板允许安装一个物品栏升级. 可以通过蹲下+右键打开平板UI访问, 此时平板将强制关机. + +不像电脑,平板不能保持状态,比如玩家拿着平板,退出,重进,平板退出前的状态是不会保留的,必须关闭平板. 跨维度也不可以,比如去地狱再会来,运行状态会丢失. + +可以放在 [充电机](../block/charger.md) 补充能量, 电脑可以通过连接的充电机访问平板的第一硬盘,此时充电机就像软驱,平板起了软盘的作用. 当你不小心搞坏了平板的系统的时候这很有用。 + +另一个高级用法是通过在一个方块上使用约一秒(长按右键)发射特定方块相关的信号,会有一声蜂鸣通知你信号被发射,仅在安装了信号发射相关升级时可用。 比如[地形分析器](../block/geolyzer.md) 会添加方块信息,如硬度, [导航升级](navigationUpgrade.md) 会添加方块相对于拿着平板的玩家的坐标信息. 拿着平板的时候,这样的方块会被高亮标记。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase1.md new file mode 100644 index 000000000..0d16fdc7d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase1.md @@ -0,0 +1,39 @@ +# Tablet Case + +![Doesn't bend.](oredict:oc:tabletCase1) + +在[装配机](../block/assembler.md)制作 [平板](tablet.md) 的基本物件. [平板](tablet.md)是袖珍的 [电脑](../general/computer.md). 可以享受少量升级, 但无法像 [机箱](../block/case1.md) 那样简单的使用红石卡和网卡和世界交互 + +不能被平板使用的升级和卡[tablets](tablet.md)都放不进 [组装机](../block/assembler.md). 如果能放进 [组装机](../block/assembler.md), 他就能通过组件api使用. + +在玩家物品栏的平板会保持允许. 丢下或者放到其他地方, 会在一段时间后关闭. + +T1配件: +- 1x [CPU (T 2)](cpu2.md) +- 2x [内存 (T 2)](ram3.md) +- 1x [硬盘 (T 2)](hdd2.md) +- 2x 扩展卡 (T 2) +- 1x [EEPROM](eeprom.md) +- 1x 升级 (T 1) +- 1x 升级 (T 2) +- 1x 升级 (T 3) + +T2配件: +- 1x [CPU (T 3)](cpu3.md) +- 2x [内存 (T 2)](ram3.md) +- 1x [硬盘 (T 2)](hdd2.md) +- 1x Expansion card (T 2) +- 1x Expansion card (T 3) +- 1x [EEPROM](eeprom.md) +- 2x 升级 (T 2) +- 1x 升级 (T 3) +- 1x [升级](upgradeContainer2.md) or [卡槽](cardContainer2.md) (T 2) + +T4配件: +- 1x [CPU (T 3)](cpu3.md) +- 2x [内存 (T 3)](ram5.md) +- 1x [硬盘 (T 3)](hdd3.md) +- 3x 扩展卡 (T 3) +- 1x [EEPROM](eeprom.md) +- 9x 升级 (T 3) +- 1x [升级](upgradeContainer3.md) or [卡槽](cardContainer3.md) (T 3) \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase2.md new file mode 100644 index 000000000..325fd0f57 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCase2.md @@ -0,0 +1 @@ +#REDIRECT tabletCase1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCaseCreative.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCaseCreative.md new file mode 100644 index 000000000..325fd0f57 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tabletCaseCreative.md @@ -0,0 +1 @@ +#REDIRECT tabletCase1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tankControllerUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tankControllerUpgrade.md new file mode 100644 index 000000000..e734f31ee --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tankControllerUpgrade.md @@ -0,0 +1,9 @@ +# Tank Controller + +![Fluid routing.](oredict:oc:tankControllerUpgrade) + +储罐控制器可以控制储罐. 允许查询内部储罐和外部(比如岩浆发电机,UU机,BC罐子). + +可以被安放在 [适配器](../block/adapter.md),允许连接的[电脑](../general/computer.md)查询相邻的储罐信息 + +参见: [转置器](../block/transposer.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tankUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tankUpgrade.md new file mode 100644 index 000000000..362775b12 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tankUpgrade.md @@ -0,0 +1,5 @@ +# Tank Upgrade + +![Suck it.](oredict:oc:tankUpgrade) + +储罐升级允许设备存储液体. 每个升级仅能存储一个类型的物品, 提供16桶容量(16000mB). [机器人](../block/robot.md) 和 [无人机](drone.md) 可以从世界中和其他储罐汲取液体, 也可以放回世界或者储罐. 单个设备的储罐数没有限制. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md new file mode 100644 index 000000000..430e1eab5 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md @@ -0,0 +1,9 @@ +# Remote Terminal + +![Remote access.](oredict:oc:terminal) + +终端提供了对 [终端服务器](terminalServer.md)的远程访问. 激活一台在机架安装的[终端服务器](terminalServer.md), 选择要绑定到终端的服务器即可. + +[终端服务器](terminalServer.md) 提供了[虚拟屏幕](../block/screen1.md) 和[虚拟键盘](../block/keyboard.md)(类似于openssh server),可以通过终端访问. 注意不要将实体键盘和屏幕连接到终端服务器所在的子网,否则发生的事情是未定义行为. 使用绑定了的终端后,一个和电脑连接屏幕和键盘一样的界面会打开,你在这个GUI做的事情将会被反馈到远程的机器 + +多个终端可以被绑定到同一个[终端服务器](terminalServer.md), 但是他们共享显示和输入,这是和sshd不同的地方. [终端服务器](terminalServer.md) 只能绑定有限数量的终端. 达到上限后,继续绑定会踢出最先绑定的终端. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminalServer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminalServer.md new file mode 100644 index 000000000..26b5e2f06 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminalServer.md @@ -0,0 +1,5 @@ +# Terminal Server + +![Remote Viewing](oredict:oc:terminalServer) + +向外界提供虚拟屏幕和键盘,可以通过绑定终端来控制机器,必须安装在机架里面。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/texturePicker.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/texturePicker.md new file mode 100644 index 000000000..32ce3d2c4 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/texturePicker.md @@ -0,0 +1,5 @@ +# Texture Picker + +![What do you mean, it's just a re-skin?](oredict:oc:texturePicker) + +纹理拾取器用于制作3d打印的模型 [3D printer](../block/printer.md). 可以通过蹲下+右键拾取世界中方块使用的纹理, 注意: 某些渲染特殊的方块,比如箱子,不起作用。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tractorBeamUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tractorBeamUpgrade.md new file mode 100644 index 000000000..7e5f5aae2 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tractorBeamUpgrade.md @@ -0,0 +1,5 @@ +# Tractor Beam + +![Beam me up.](oredict:oc:tractorBeamUpgrade) + +牵引光束升级允许设备捡起3格内的物品. 对农场里面的[机器人](../block/robot.md)十分有用,当机器人使用范围挖掘工具时效果也很明显. 每次操作都会耗费能量. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tradingUpgrade.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tradingUpgrade.md new file mode 100644 index 000000000..9c0fac206 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tradingUpgrade.md @@ -0,0 +1,5 @@ +# Trading Upgrade + +![Equivalent Exchange](oredict:oc:tradingUpgrade) + +交易升级允许自动和商人交易,可以被放在[机器人](../block/robot.md)和[无人机](drone.md)里面,能够探测附近商人的存在,知道自己可以卖什么并完成交易。 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/transistor.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/transistor.md new file mode 100644 index 000000000..f0fe4b467 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/transistor.md @@ -0,0 +1,5 @@ +# Transistor + +![I think I've used up all my references.](oredict:oc:materialTransistor) + +晶体管是基本合成材料,主要用于合成 [芯片](chip1.md)等电子产品. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer1.md new file mode 100644 index 000000000..aa8f3a65b --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer1.md @@ -0,0 +1,5 @@ +# Upgrade Container + +![Can haz upgrade.](oredict:oc:upgradeContainer1) + +升级箱为[机器人](../block/robot.md)提供额外的升级槽位. 其升级幅度由升级箱规格而定,会双倍增加机器人的复杂度 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer2.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer2.md new file mode 100644 index 000000000..408c907f9 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer2.md @@ -0,0 +1 @@ +#REDIRECT upgradeContainer1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer3.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer3.md new file mode 100644 index 000000000..408c907f9 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/upgradeContainer3.md @@ -0,0 +1 @@ +#REDIRECT upgradeContainer1.md \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md new file mode 100644 index 000000000..3a52941e8 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md @@ -0,0 +1,7 @@ +# WLAN Card + +![May cause cancer. May not.](oredict:oc:wlanCard) + +无线网卡是 [网卡](lanCard.md) 的升级, 添加了收发无线信号的能力。无线信号发射强度决定了信息可以传多远, 信号强度等于方块距离. + +强度越高发射所需能量越大. 地形也会干扰到发送过程. 信号强度 - 方块硬度 > 0 时,信号可以穿透方块,并且强度将衰减到 信号强度 - 方块硬度,空气硬度是1,当强度下降到0时,目标将不会收到信号. 通常你需要保证发送和接受之间的连线是净空的. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/worldSensorCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/worldSensorCard.md new file mode 100644 index 000000000..6707c0981 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/worldSensorCard.md @@ -0,0 +1,5 @@ +# World Sensor Card + +![To boldly go...](oredict:oc:worldSensorCard) + +世界传感器卡允许读取大气,重力等世界信息,通常用于加入了星系mod的情况,用于调节在空间内工作的机器人 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/wrench.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/wrench.md new file mode 100644 index 000000000..accac8b1d --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/wrench.md @@ -0,0 +1,5 @@ +# Scrench + +![Made in Swiss.](oredict:oc:wrench) + +扳手 => 融合了螺丝刀和普通扳手的功能,可以拿来旋转方块 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt b/src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt new file mode 100644 index 000000000..69621d6a0 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt @@ -0,0 +1,13 @@ +#blocks/robot.md +blocks/waypoint.md +blocks/print.md +blocks/relay.md +items/terminal.md +items/tablet.md +items/wlancard.md +items/cardcontainer.md +items/hoverupgrade.md +items/mfu.md +items/hdd.md +items/hoverboot.md +general/quickstart.md \ No newline at end of file diff --git a/src/main/scala/li/cil/oc/client/gui/Manual.scala b/src/main/scala/li/cil/oc/client/gui/Manual.scala index 02a3cc9eb..b1bb780da 100644 --- a/src/main/scala/li/cil/oc/client/gui/Manual.scala +++ b/src/main/scala/li/cil/oc/client/gui/Manual.scala @@ -57,7 +57,7 @@ class Manual extends GuiScreen with traits.Window { } def refreshPage(): Unit = { - val content = Option(api.Manual.contentFor(ManualAPI.history.top.path)). + val content = Option(api.Manual.contentFor(ManualAPI.history.top.path)). getOrElse(asJavaIterable(Iterable("Document not found: " + ManualAPI.history.top.path))) document = Document.parse(content) documentHeight = Document.height(document, documentMaxWidth, fontRendererObj) diff --git a/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala b/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala index 07ad82e7a..857979117 100644 --- a/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala +++ b/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala @@ -61,7 +61,15 @@ trait BasicTextSegment extends Segment { if (width >= maxWidth) { if (lastBreak > 0 || fullWidth <= maxLineWidth || s.exists(breaks.contains)) if (maxWidth == maxLineWidth && fullWidth == maxLineWidth && !s.exists(breaks.contains)) return s.length - else return lastBreak + 1 + else if(lastBreak == -1) + { + //lastbreak = -1, then return pos - 1 + //if return lastBreak + 1,we will run into infinite loop + return pos - 1 + } + else { + return lastBreak + 1 //if we got a long sentence without breaks ,lastbreak still -1 + } else return pos - 1 } if (pos < s.length && breaks.contains(s.charAt(pos))) lastBreak = pos From e43225f5cbca049376d009e48b5d44e7326f5eaf Mon Sep 17 00:00:00 2001 From: 45210 <452104285@qq.com> Date: Wed, 24 May 2017 14:29:31 +0800 Subject: [PATCH 06/21] Adding zh_CN localization of OpenComputers Manual,and fix of infinite loop in calculating nextY --- .../assets/opencomputers/doc/zh_CN/无效文件.txt | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt b/src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt deleted file mode 100644 index 69621d6a0..000000000 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/无效文件.txt +++ /dev/null @@ -1,13 +0,0 @@ -#blocks/robot.md -blocks/waypoint.md -blocks/print.md -blocks/relay.md -items/terminal.md -items/tablet.md -items/wlancard.md -items/cardcontainer.md -items/hoverupgrade.md -items/mfu.md -items/hdd.md -items/hoverboot.md -general/quickstart.md \ No newline at end of file From eb69ee653951e0e1f87f5f81f9dda6a453d2f1b5 Mon Sep 17 00:00:00 2001 From: loveyanbei Date: Fri, 26 May 2017 12:36:53 +0800 Subject: [PATCH 07/21] Some Additional files --- .../opencomputers/doc/zh_CN/block/index.md | 20 ++++++------ .../opencomputers/doc/zh_CN/block/print.md | 6 ++-- .../opencomputers/doc/zh_CN/block/printer.md | 15 ++++----- .../opencomputers/doc/zh_CN/block/relay.md | 12 +++---- .../opencomputers/doc/zh_CN/block/screen1.md | 12 +++++-- .../opencomputers/doc/zh_CN/block/waypoint.md | 6 ++-- .../doc/zh_CN/general/quickstart.md | 32 +++++++++---------- .../assets/opencomputers/doc/zh_CN/index.md | 18 +++-------- .../doc/zh_CN/item/cardContainer1.md | 2 +- .../opencomputers/doc/zh_CN/item/hdd1.md | 2 +- .../doc/zh_CN/item/hoverBoots.md | 6 ++-- .../doc/zh_CN/item/hoverUpgrade1.md | 10 +++--- .../opencomputers/doc/zh_CN/item/index.md | 26 +++++++-------- .../opencomputers/doc/zh_CN/item/mfu.md | 4 +-- .../opencomputers/doc/zh_CN/item/tablet.md | 8 ++--- .../opencomputers/doc/zh_CN/item/terminal.md | 5 +-- .../opencomputers/doc/zh_CN/item/wlanCard.md | 4 +-- 17 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md index cf8a4e9e4..ccfe5f6ec 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/index.md @@ -1,27 +1,27 @@ -# Blocks +# 方块 本索引列出了OC全部的的方块 如果要找物品点[这里](../item/index.md). -Keep in mind that some of these may not be available, depending on the recipe set used. +注意有些方块由于合成表的原因,可能不可用. -## Computers +## 电脑 * [机箱](case1.md) * [单片机](microcontroller.md) * [机架](rack.md) * [机器人](robot.md) -## Components +## 组件 -### Input / Output +### 输入 / 输出 * [全息投影机](hologram1.md) * [键盘](keyboard.md) * [屏幕](screen1.md) -### Storage +### 存储 * [硬盘](diskDrive.md) * [磁盘阵列](raid.md) -### Extensions +### 扩展 * [适配器](adapter.md) * [扫描器](geolyzer.md) * [运动探测器](motionSensor.md) @@ -29,19 +29,19 @@ Keep in mind that some of these may not be available, depending on the recipe se * [转置器(注:直译)](transposer.md) * [路径点](waypoint.md) -## Assembly / Printing +## 组装 / 打印 * [3D打印](print.md) * [3D打印机](printer.md) * [组装器](assembler.md) * [染色方块](chameliumBlock.md) * [拆解器](disassembler.md) -## Networking +## 网络 * [线缆](cable.md) * [VLAN分割器](netSplitter.md) * [中继器](relay.md) -## Power management +## 电源管理 * [电容](capacitor.md) * [充电器](charger.md) * [能源转换](powerConverter.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md index 0f803aec6..b97f3e45d 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/print.md @@ -2,10 +2,10 @@ ![Any way you want me.](block:OpenComputers:print) -3D打印制品由 [3D打印机](printer.md)制造. 他们主要作为装饰用途出现, 但也可以用作收发红石信号来扩展出一点点小的功能. +3D打印制品由 [3D打印机](printer.md)制造. 他们主要作为装饰用途出现, 但也可以收发红石信号来扩展出一点点小的功能. 可以通过放入 [3D打印机](printer.md)进行回收. 可以重用一点用来打印的 [油墨](../item/chamelium.md). 打印的颜料是不会回收的. -长按shift(默认的OC扩展tip)会显示出当前打印制品的激活状态. +长按shift(默认的OC扩展tip),将会显示出当前打印制品的激活状态. -兼容Forge Multipart. 在他们不碰撞,且单个方块的形状数量不超出上限的情况下它们可以被放入单个方块的空间,比如火炬,拉杆,线缆等. +兼容Forge Multipart. 在他们不碰撞,且单个方块的形状数量不超出上限时,可以被放入单个方块的空间,比如火炬,拉杆,线缆等. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md index 3fdb09cae..2aa3f07f9 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/printer.md @@ -2,17 +2,16 @@ ![2D printing is so yesteryear.](oredict:oc:printer) -3D printers allow you to print any block of any shape, with any type of texture. To get started with 3D printers, you will need to place down a 3D printer block next to a computer. This will give access to the `printer3d` component API, allowing you to set up and print [models](print.md) using the provided functions. +3D打印机允许你在任何方块上,用任何纹理打印出你想要的样子.要打印东西, 需要在电脑边放一台打印机.`printer3d` 组件API将启用, 电脑将能够通过这些API,控制打印机打印出[模型](print.md). -A more convenient way to setup 3D printers is to use Open Programs Package Manager (OPPM). Once installed (`oppm install oppm`), make sure you have an [internet card](../item/internetCard.md) in your [computer](../general/computer.md) and run the following command: +用OPPM来设置打印机更方便. 一旦安装 (`oppm install oppm`), 确保你有 [因特网卡](../item/internetCard.md),并执行以下命令: `oppm install print3d-examples` -The examples can then be found in `/usr/share/models/` as .3dm files. Take a look through the example files for available options, in particular the `example.3dm` file. Alternatively, you can download the `print3d` and `print3d-examples` programs from OpenPrograms using `wget` and an [internet card](../item/internetCard.md). +示例将会在 `/usr/share/models/` 以.3dm的扩展名存在. 阅读示例文件以获取打印选项的信息, 尤其是这个 `example.3dm`. 你也可以通过安装了网卡的计算机,用wget从OpenProgram下载`print3d` and `print3d-examples`. -In order to be able to print the models, a 3D printer needs to be configured via a [computer](../general/computer.md). If set to print non-stop, the computer will no longer be required thereafter. You will also need to provide an [ink cartridge](../item/inkCartridge.md) and some [chamelium](../item/chamelium.md) as input materials. The amount of chamelium used depends on the volume of the 3D print, while the amount of ink used depends on the surface area of the printed item. +要打印模型, 需要通过 [电脑](../general/computer.md)配置打印机. 如果设置了循环打印, 开始任务后电脑就可以搬走了. 你还需要提供 [墨盒](../item/inkCartridge.md) , [油墨](../item/chamelium.md) 作为打印材料. 油墨用量和3D打印大小有关, 墨水取决于表面积. -To print an item, use the following command: -`print3d /path/to/file.3dm` -providing the path to the .3dm file. +打印需要以下命令: +`print3d /到打印文件的路径/文件.3dm` -Documentation pertaining to creating your own models can be found in `/usr/share/models/example.3dm`. +可以在 `/usr/share/models/example.3dm`.找到相关文档 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md index a309b8925..d57ae78f3 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/relay.md @@ -2,16 +2,16 @@ ![Building bridges.](oredict:oc:relay) -中继器允许子网间发送消息, 而不必把组件暴露给其他网络的 [电脑](../general/computer.md). 通常来说把组件限制在本地网络是个好主意(如果被不怀好意的熊控制了你的机器人,那么你家就完蛋了), +中继器允许子网间发送消息,而不把组件暴露给其他网络的[电脑](../general/computer.md).通常来说,把组件限制在本地网络是个好主意,如果被不怀好意的熊控制了你的机器人,那么你家就完蛋了. -可以用来避免[电脑](../general/computer.md) 链接到错误的 [屏幕](screen1.md) 或者避免组件崩溃 (可能崩掉电脑,并使之无法启动). +可避免电脑链接到错误的屏幕,或者避免组件崩溃(可能崩掉电脑,并使之无法启动). -中继器可以安装[无线网卡](../item/wlanCard.md) 来无线传递消息. 无线消息也可以被其他的中继器接受并转发, 或者是被有无线网卡的电脑收到 +中继器可以安装[无线网卡](../item/wlanCard.md),发送无线消息.其他的中继器可接受并转发,或者是被有无线网卡的电脑收到. -中继器也可以安装[连接卡](../item/linkedCard.md).此时他会将消息转发到链接卡的信道里面, 记得保持中继器能源 +中继器也可以安装[连接卡](../item/linkedCard.md).消息被转发到链接卡的信道里面, 记得保持中继器能源. -中继器不会记下包的路径, 因此请避免网络环路(现实中将触发广播风暴,全网瘫痪). 由于中继器资源不是无限的,过于频繁的发包将会导致丢包. +中继器不会记下包的路径,因此请避免网络环路(现实中将触发广播风暴,全网瘫痪).由于中继器资源不是无限的,过于频繁的发包将会导致丢包. 你也可以通过升级来加速转发速度. -包只会被转发有限次数(TTL),当TTL降为0时,包会被自动丢弃,缺省的TTL是5,每转发一次减去1 +包只会被转发有限次数(TTL),当TTL降为0时,包会被自动丢弃,缺省的TTL是5,每转发一次减去1. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md index 804662776..b21cf68f4 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/screen1.md @@ -2,9 +2,17 @@ ![See this?](oredict:oc:screen1) -显示屏需要和显卡一起使用, 使得电脑能够显示文本.不同型号的屏幕能够显示不同的东西, 比如不同的分辨率和色深. 从低分单色屏到高分256色屏幕,可用分辨率取决于最差的那个配件。 当使用T1显卡和T3屏幕时,仅T1的分辨率和色深可用,反之亦然。但是T3显卡的运行速度会快些 +显示屏需要和显卡一起使用, 使得电脑能够显示文本.不同型号的屏幕能够显示不同的东西, 比如不同的分辨率和色深. 从低分单色屏到高分256色屏幕,可用分辨率取决于最差的那个配件. -屏幕可以相邻放置组成多方块屏幕,需要朝向一样. 旋转的上下方向也要一直. 屏幕旋转方向可以通过拿在手上的屏幕里面的箭头确定.屏幕大小对分辨率无影响,屏幕也可以染色来控制哪两块屏幕可以连接,手持染料右键即可,染料不会消耗掉. 屏幕在敲下来以后仍然保持他的颜色. 不同色不会连一起,同色不同型也不会.T2和T3屏支持鼠标. 屏幕会响应点击事件(只会在有键盘的时候或者是按下蹲的时候打开),在屏幕没有键盘的时候,蹲下是唯一操作办法.注意在交互是是否打开屏幕是可以通过组件API控制的T3可以配置为接受更高的点击精度,这可以让人判定是点击上半个字符还是下半个,可以用来模拟更高分辨率的屏幕。 +当使用T1显卡和T3屏幕时,仅T1的分辨率和色深可用,反之亦然.但是T3显卡的运行速度会快些 + +屏幕可以相邻放置组成多方块屏幕,需要朝向一样. 旋转的上下方向也一致. 可以通过手上的确定屏幕旋转方向.屏幕大小对分辨率无影响. + +可以通过染色,控制哪两块屏幕可以连接,手持染料右键即可,染料不会消耗掉. 屏幕在敲下来以后仍然保持他的颜色. 不同色不会连一起,同色不同型也不会. + +T2和T3屏支持鼠标. 屏幕会响应点击事件(只会在有键盘的时候或者是按下蹲的时候打开),在屏幕没有键盘的时候,蹲下是唯一操作办法.注意是否打开屏幕是可以通过组件API控制的. + +T3可以配置为接受更高的点击精度,这可以让人判定是点击上半个字符还是下半个,可以用来模拟更高分辨率的屏幕. 分辨率如下: T1: 50x16, 单色. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md b/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md index de7318228..05020db66 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/block/waypoint.md @@ -1,6 +1,6 @@ # Waypoint !["This way!" - "No, that way!"](oredict:oc:waypoint) -路径点重点不在本身,而是如何使用. 导航升级可以探测路径点, 因此安装了这种升级的设备就可以通过它导航. 这在对机器人和无人机写高度可重用的程序时很有用. -注意导航升级报告的路径点位置指的是路径点方块的正面相邻的方块(粒子效果指示). 因此你可以把他放在箱子的边上或者上方, 通过将路径点看作“箱子上方”,而不必在你的程序里面旋转路点坐标。 -一个路点有两个属性: 一个是收到的红石信号强度, 一个是可编辑的标签. 它是32长度字符串,并且可以在连接路点的设备上进行编辑,它告诉我们路点该如何使用 \ No newline at end of file +路径点重点不在本身,而是如何使用. 导航升级可以探测路径点, 因此安装了这种升级的设备就可以通过它导航. 这在对机器人和无人机写高度可重用的程序时很有用. +注意!导航升级报告的路径点位置,指的是路径点方块的正面,相邻的方块(粒子效果指示). 因此你可以把他放在箱子的边上或者上方, 通过将路径点看作“箱子上方”,而不必在你的程序里面旋转路点坐标。 +一个路点有两个属性:一个是收到的红石信号强度, 一个是可编辑的标签. 它是32长度字符串,可以在连接路点的设备上进行编辑,它告诉我们路点该如何使用 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md b/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md index 54ac19b41..a76796d0d 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/general/quickstart.md @@ -8,52 +8,52 @@ ![A tier two computer case.](oredict:oc:case2) -比如你要挑一个适合你的 [显卡](../item/graphicsCard1.md)(GTX690,GTX1080,划掉), 还可能需要一个[网卡](../item/lanCard.md), 一块 [红石卡](../item/redstoneCard1.md) , 如果你是可以调创造的狗管理你还可以拿出 [调试卡](../item/debugCard.md). +比如你要挑一个适合你的 [显卡](../item/graphicsCard1.md)(GTX690,GTX1080,划掉), 还可能需要一个[网卡](../item/lanCard.md), 一块 [红石卡](../item/redstoneCard1.md) , 如果你是可以调创造的狗管理你还可以拿出 [调试卡](../item/debugCard.md). -打开[机箱](../block/case1.md)你会看到一系列的槽位. 上面写了槽位的数量,可以放什么样的配件进去,等 (槽位小字有写),这些数据取决于机箱档次. +打开[机箱](../block/case1.md)你会看到一系列的槽位. 上面写了槽位的数量,可以放什么样的配件进去,等 (槽位小字有写),这些数据取决于机箱档次. ![GUI of a tier two computer case.](opencomputers:doc/img/configuration_case1.png) 如果没放东西, [机箱](../block/case1.md)完全没用. 如果你试图按下 [电脑](computer.md)的开机键, 他只会立刻在你的聊天框输出一条错误, 用蜂鸣声提示你. 幸运的是他提醒了你要怎么去做: 电脑需要能源. 把你的电脑接发电机, 或者是接到[能量转换器](../block/powerConverter.md). -这次启动, 他会告诉你电脑需要 [CPU](../item/cpu1.md). CPU分不同级别,越高级的要越多的东西合成,执行速度也快。选择一款CPU,丢进你的[机箱](../block/case1.md). +这次启动, 他会告诉你电脑需要 [CPU](../item/cpu1.md). CPU分不同级别,越高级的要越多的东西合成,执行速度也快.选择一款CPU,丢进你的[机箱](../block/case1.md). -好的这次他要你放[内存](../item/ram1.md)了 . 注意警报变化了: 长-短. 越高级的 [内存](../item/ram1.md)容量越大,跑的程序越多. 运行 [OpenOS](openOS.md), 这篇教程的目标, 需要至少2条T1 [内存](../item/ram1.md). +好的这次他要你放[内存](../item/ram1.md)了 . 注意警报变化了: 长-短. 越高级的 [内存](../item/ram1.md)容量越大,跑的程序越多. 运行 [OpenOS](openOS.md), 这篇教程的目标, 需要至少2条T1 [内存](../item/ram1.md). -ok,做的很好,现在[机箱](../block/case1.md) 变成这样了: +ok,做的很好,现在[机箱](../block/case1.md) 变成这样了: ![Partially configured computer.](opencomputers:doc/img/configuration_case2.png) -别急, 现在虽然不会打印错误了, 但是他也什么都做不了. 至少他还会发出两声警报. 这意味着电脑进入执行状态,但是未能成功. In other words: it technically runs! This is where a very useful tool comes into play: the [analyzer](../item/analyzer.md). This tool allows inspecting many of OpenComputers' blocks, as well as some blocks from other mods. To use it on the [computer](computer.md), use the [analyzer](../item/analyzer.md) on the case while sneaking. +别急, 现在虽然不会打印错误了, 但是他也什么都做不了. 至少他还会发出两声警报. 这意味着电脑进入执行状态,但是未能成功. In other words: it technically runs! This is where a very useful tool comes into play: the [analyzer](../item/analyzer.md). This tool allows inspecting many of OpenComputers' blocks, as well as some blocks from other mods. To use it on the [computer](computer.md), use the [analyzer](../item/analyzer.md) on the case while sneaking. 你会在聊天框看到 [电脑](computer.md) 遇到的错误: `no bios found; install configured EEPROM` -这说明你需要一个刷写程序的E2PROM芯片装入机箱来指定电脑的任务 +这说明:你需要一个刷写过程序的E2PROM芯片,并装入机箱 -注意那个 configured,需要刷一个程序。合成E2PROM很简单,但是刷写程序需要电脑,是不是难了点,这里我们要直接合成一个预刷写LUA BIOS的E2PROM,使用E2PROM和你的手册合成,将这个ROM丢进机箱,开机! +注意那个 configured,需要刷一个程序.合成E2PROM很简单,但是刷写程序需要电脑,是不是难了点,这里我们要直接合成一个预刷写LUA BIOS的E2PROM,使用E2PROM和你的手册合成,将这个ROM丢进机箱,开机! -啊哈哈,还是啥都没有,但是我们看到了一条信息 +啊哈哈,还是啥都没有,但是我们看到了一条信息 `no bootable medium found; file not found` -说明Lua BIOS运行正常,它执行了对文件系统的搜索,如根目录含有init.lua的[软盘](../item/floppy.md)或者[硬盘](../item/hdd1.md),因此我们现在需要一张带有OpenOS安装的软盘(用空磁盘+手册合成) +说明Lua BIOS运行正常,它执行了对文件系统的搜索,如根目录含有init.lua的[软盘](../item/floppy.md)或者[硬盘](../item/hdd1.md),因此我们现在需要一张带有OpenOS安装的软盘(用空磁盘+手册合成) -嗯,如果你用了T2机箱,那么你还要做一个[软盘驱动器](../block/diskDrive.md)来读盘,如果是T3及以上那么直接放到机箱就行了,如果使用驱动器,那么将驱动器放在电脑边上,插入软盘,启动 +嗯,如果你用了T2机箱,那么你还要做一个[软盘驱动器](../block/diskDrive.md)来读盘,如果是T3及以上那么直接放到机箱就行了,如果使用驱动器,那么将驱动器放在电脑边上,插入软盘,启动 -好的,他启动了。如果有什么问题的话,可以使用[分析仪](../item/analyzer.md)排查。不过我们的电脑应该跑起来了。 +好的,他启动了.如果有什么问题的话,可以使用[分析仪](../item/analyzer.md)排查.不过我们的电脑应该跑起来了. -最难的部分已经过去了,剩下就是如何让电脑输出信息,并且让电脑接受输入 +最难的部分已经过去了,剩下就是如何让电脑输出信息,并且让电脑接受输入 -你需要将一个[屏幕](../block/screen1.md)安放在电脑上 ,并在机箱安装[显卡](../item/graphicsCard1.md) +你需要将一个[屏幕](../block/screen1.md)安放在电脑上 ,并在机箱安装[显卡](../item/graphicsCard1.md) ![No, it's not a flatscreen.](oredict:oc:screen2) -之后你就可以看到电脑的输出,然后电脑就会等待你的操作了,尝试一下吧!敲入 'lua' 并按下回车,你将会得到lua交互解释器的帮助(英文),你可以测试基本lua命令,更多信息见[the Lua page](lua.md) +之后你就可以看到电脑的输出,然后电脑就会等待你的操作了,尝试一下吧!敲入 'lua' 并按下回车,你将会得到lua交互解释器的帮助(英文),你可以测试基本lua命令,更多信息见[the Lua page](lua.md) ![It lives!](opencomputers:doc/img/configuration_done.png) -之后就可以建造更复杂的 [电脑](computer.md), [服务器](../item/server1.md) ,用 [组装机](../block/assembler.md) 组装[机器人](../block/robot.md), [无人机](../item/drone.md), [单片机](../block/microcontroller.md) 和 [平板](../item/tablet.md). +之后就可以建造更复杂的 [电脑](computer.md), [服务器](../item/server1.md) ,用 [组装机](../block/assembler.md) 组装[机器人](../block/robot.md), [无人机](../item/drone.md), [单片机](../block/microcontroller.md) 和 [平板](../item/tablet.md). Happy coding! \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/index.md b/src/main/resources/assets/opencomputers/doc/zh_CN/index.md index 0036a4296..637c571de 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/index.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/index.md @@ -2,6 +2,8 @@ OpenComputers 是一个持久化,模块化,高度可定制化的mod,在游戏中提供了 [电脑](general/computer.md), [服务器](item/server1.md), [机器人](block/robot.md), 和 [无人机](item/drone.md) .所有设备均可通过LUA5.2编写程序, 实现各种复杂的系统. +可能有的地方会因为省略的原因,说话有一点歧义,因为这个mod显示手册的时候,埋藏了操蛋的bug,英文状态下没问题,中文句子一长,这货就卡死了,还是经过几个小时的debug才发现的! + 通过 [关于手册](item/manual.md)学习mod (绿字是链接,可点击). ## 内容 @@ -21,10 +23,10 @@ OpenComputers 是一个持久化,模块化,高度可定制化的mod,在游 - [物品](item/index.md) - [方块](block/index.md) -### Guides -- [Getting Started](general/quickstart.md) +### 指导 +- [快速上手](general/quickstart.md) -## Overview +## 概要 如上文所说, 电脑可以持久化的存储自己的状态, 意味着运行的 [电脑](general/computer.md) 即使在所属区块被卸载时也能保持住自己的状态. 也就是说当玩家离开 [电脑](general/computer.md)所在的区块, 或者退出后, [电脑](general/computer.md) 将会记住离开前最后一刻的状态, 并在区块被加载后重新从断电恢复运转[电脑](general/computer.md). 特性 不包括[平板](item/tablet.md). @@ -35,13 +37,3 @@ OpenComputers 与多个mod兼容,不论是方块还是实体。(通过 [适配 虽说有些限制,OC mod依然提供了大量的可能性. [电脑](general/computer.md) 是基础, 能够做到大多数事情, CPU是核心. [电脑](general/computer.md) 可以访问周围6个面的组件. [服务器](item/server1.md) 可以通过 [总线](item/componentBus1.md)链接更多设备 (内部或外部互联), ; 但是服务器只能被安装在[机架](block/rack.md), 他只能被从[机架](block/rack.md)的一侧被访问到, 访问的侧可以被从 [机架](block/rack.md) GUI设定. [单片机](block/microcontroller.md) 功能十分受限 (比起普通的[电脑](general/computer.md)), 因为他们只有可怜的存储[硬盘](item/hdd1.md) 和外置存储 [软盘驱动器](block/diskDrive.md) , 意味着通常的 [OpenOS](general/openOS.md) 无法被安装到 [单片机](block/microcontroller.md). [单片机](block/microcontroller.md)只有一个 [E2PROM](item/eeprom.md)槽, 只能被编程为执行有限的简单任务. [机器人](block/robot.md) 是移动的 [电脑](general/computer.md), 可以与世界交互 (但无法和外部电脑方块交互).不像 [电脑](general/computer.md), [机器人](block/robot.md) 一经建造,内部的部件就不能再被改变或者去除. 为了解决这个问题, [机器人](block/robot.md) 可以被 [升级](item/upgradeContainer1.md) 或者 [卡片](item/cardContainer1.md) 插入, 允许热升级或者插拔卡片. [OpenOS](general/openOS.md) 可以在 [机器人](block/robot.md) 上面通过放一个[硬盘](block/diskDrive.md) 安装, 也允许插入 [软盘](item/floppy.md) disks, 或者插入预装了OpenOS的硬盘. 重设机器人需要将机器人[拆解](block/disassembler.md) . [无人机](item/drone.md)是阉割版机器人 [robots](block/robot.md). 他们只有少量物品栏,移动方式也和机器人不同, 像[单片机](block/microcontroller.md)一样安不上操作系统, [无人机](item/drone.md) 可以被插入预编程的 [E2PROM](item/eeprom.md)). 大部分情况下, [机器人](block/robot.md) 和 [无人机](item/drone.md) 使用相同的配件和更新; 然而, 这些东西在无人机和机器人的表现不统一, [物品栏升级](item/inventoryUpgrade.md) 每次只提供四个物品栏, 最多8个, [机器人](block/robot.md) 可以携带最多四个,每个提供16个物品的 [物品栏升级](item/inventoryUpgrade.md) - -##机器人 - -制作机器人请将机箱放到组装器里面,这样就可以做机器人了 - -可以装入各种升级和卡片,配备软驱的机器人还可以安装OS - -机器人的汉化卡死,所以就简单的说下好了 - -E文好的可以去看E文手册 diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md index 2878b549f..43c943288 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/cardContainer1.md @@ -2,4 +2,4 @@ ![Can haz cards!](oredict:oc:cardContainer1) -[机器人](../block/robot.md) 的物品栏升级之一,允许热插拔卡。单个槽最大卡数等于这个升级的等级. 这个容器的复杂度是一般的两倍. 参见 [here](../block/robot.md) 机器人复杂度 +[机器人](../block/robot.md) 的物品栏升级之一,允许热插拔卡.单个槽最大卡数等于这个升级的等级.这个容器的复杂度是一般的两倍.参见[机器人复杂度](../block/robot.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md index 291049ed2..775aa6ea7 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hdd1.md @@ -2,4 +2,4 @@ ![Spaaaace.](oredict:oc:hdd1) -熟悉的存储器,存储速度一样,档次决定空间大小,有的机器只能用硬盘. \ No newline at end of file +熟悉的存储器,存储速度一样,档次决定空间大小,有的机器只能用硬盘. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md index 26a5b6885..e89ff43ad 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverBoots.md @@ -2,8 +2,8 @@ ![Step on it.](oredict:oc:hoverBoots) -如果不想去编程 [无人机](drone.md), 有个变通的办法: 踏脚石! +如果不想去编程[无人机](drone.md),有个变通的办法:悬浮鞋! -鞋子有个特点: 只要有能量你就能跳得更高, 然后吸收落地的冲击力. 意思是你可以跳上4格子高然后将落地的冲击降到30%,也就是说你可以在4格子高跳下而不掉血. +鞋子有个特点:只要有能量你就能跳得更高, 然后吸收落地的冲击力.意思是你可以跳上4格子高,然后将落地的冲击降到30%,也就是说你可以在4格子高跳下而不掉血. -可以通过[充电机](../block/charger.md) ,AE2 充电器,工业充电盒子,或者是TE的充电器来充能, 靴子可以任意用染料染色 \ No newline at end of file +可以通过[充电机](../block/charger.md) ,AE2 充电器,工业充电盒子,或者是TE的充电器来充能, 靴子可以任意用染料染色 \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md index 406ae4332..3dfbb64ff 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/hoverUpgrade1.md @@ -2,12 +2,12 @@ ![Float like a feather.](oredict:oc:hoverUpgrade1) -允许 [机器人](../block/robot.md) 飞得更高. 缺省状态下机器人只能往上走8格子. 平常因为这足够爬墙所以这足够了. +允许 [机器人](../block/robot.md)飞得更高.缺省状态下机器人只能往上走8格子.平常因为这足够爬墙所以这足够了. 规律是这样的: -- 机器人只会在起点和终点都有效的情况下才会动 (e.g.允许搭桥). -- 机器人下方的位置永远有效(也就是说任何时候都可以往下走). -- 一个固体方块上方的飞行上限内的格子都是有效的 -- 拥有正对当前位置相邻的表面的点是有效的 (允许爬墙). +- 机器人只会在起点,终点都有效的情况下才会动(e.g.允许搭桥). +- 机器人下方的位置,永远有效(也就是说:任何时候都可以往下走). +- 一个固体方块上方的飞行上限内的格子,都是有效的 +- 拥有正对当前位置,相邻的表面的点是有效的(允许爬墙). 这几个规则演示一下就是这样: diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md index 446690ba3..922616ed3 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/index.md @@ -1,24 +1,24 @@ -# Items +# 物品 -This index lists all of the documented items in OpenComputers. If you're looking for a block, check out the [block index](../block/index.md) instead. +本索引列举了OC所有物品. 如果你要找方块点[这里](../block/index.md). -Keep in mind that some of these may not be available, depending on the recipe set used. +注意有的物品会由于合成表的原因不可用 -## Tools +## 工具 * [分析仪](analyzer.md) * [手册](manual.md) * [远控终端](terminal.md) * [纹理拾取器](texturePicker.md) * [扳手](wrench.md) -## Devices +## 设备 * [无人机](drone.md) * [服务器](server1.md) * [平板](tablet.md) -## Components +## 组件 -### Cards +### 卡片 * [抽象总线卡](abstractBusCard.md) * [数据卡](dataCard1.md) * [调试卡(创造)](debugCard.md) (aka AMI) @@ -30,7 +30,7 @@ Keep in mind that some of these may not be available, depending on the recipe se * [无线网卡](wlanCard.md) * [世界传感器卡](worldSensorCard.md) -### Upgrades +### 升级 * [天使升级](angelUpgrade.md) * [电池升级](batteryUpgrade1.md) * [卡槽升级](cardContainer1.md) @@ -54,12 +54,12 @@ Keep in mind that some of these may not be available, depending on the recipe se * [交易升级](tradingUpgrade.md) * [升级箱](upgradeContainer1.md) -### Rack Mountables +### 机架组件 * [软驱](diskDriveMountable.md) * [服务器](server1.md) * [终端服务器](terminalServer.md) -### Other +### 杂项 * [APU](apu1.md) * [组件总线](componentBus1.md) * [CPU](cpu1.md) @@ -68,7 +68,7 @@ Keep in mind that some of these may not be available, depending on the recipe se * [硬盘驱动器](hdd1.md) * [内存](ram1.md) -## Crafting +## 合成 * [酸液](acid.md) * [逻辑运算单元](alu.md) * [方向键](arrowKeys.md) @@ -85,13 +85,13 @@ Keep in mind that some of these may not be available, depending on the recipe se * [粗电路板](rawCircuitBoard.md) * [晶闸管](transistor.md) -## Assembling / Printing +## 组装 / 打印 * [油墨](chamelium.md) * [墨盒](inkCartridge.md) * [无人机箱](droneCase1.md) * [微控制器箱](microcontrollerCase1.md) * [平板壳子](tabletCase1.md) -## Other +## 其他 * [悬浮鞋](hoverBoots.md) * [纳米机械](nanomachines.md) diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md index 65571a407..95625046f 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/mfu.md @@ -2,6 +2,6 @@ ![You will never know the true meaning of this acronym.](oredict:oc:mfu) -此升级提供了一个远程的 [适配器](../block/adapter.md). 在任意方块边上蹲下并右键都会把它绑定到特定位置. 然后放到附近的适配器里面 (这个附近很有限) 然后适配器就会像刚好在你绑定的那个边上放着那样工作(一般的适配器要挨着,这里隔了一点距离)! - +此升级提供了一个远程的[适配器](../block/adapter.md).在任意方块边上蹲下,并右键,都会把它绑定到特定位置.然后放到附近的适配器里面(这个附近很有限).适配器就会像刚好在 +你绑定的那个方块边上放着那样工作(一般的适配器要挨着,这里隔了一点距离)! 记住,保持远程适配器链接需要能量. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md index ce86619f6..ec251d14e 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/tablet.md @@ -2,12 +2,12 @@ ![Touch me if you can.](item:OpenComputers:item@68) -通过将[平板外壳](tabletCase1.md)放到[组装机](../block/assembler.md), 来配置并组装平板. 平板是一种小巧的,无法直接交互世界的电脑,比如[基础红石卡](redstoneCard1.md)就没法用. 不过另一批就可以,比如 [告示牌升级](signUpgrade.md),[活塞升级](pistonUpgrade.md). +通过将[平板外壳](tabletCase1.md)放到[组装机](../block/assembler.md),来配置并组装平板.平板是一种小巧的,无法直接交互世界的电脑,比如[基础红石卡](redstoneCard1.md)就没法用. 不过另一批就可以,比如 [告示牌升级](signUpgrade.md),[活塞升级](pistonUpgrade.md). T2平板允许安装一个物品栏升级. 可以通过蹲下+右键打开平板UI访问, 此时平板将强制关机. -不像电脑,平板不能保持状态,比如玩家拿着平板,退出,重进,平板退出前的状态是不会保留的,必须关闭平板. 跨维度也不可以,比如去地狱再会来,运行状态会丢失. +不像电脑,平板不能保持状态,比如玩家拿着平板,退出,重进,平板退出前的状态是不会保留的,必须关闭平板. 跨维度也不可以,比如去地狱再会来,运行状态会丢失. -可以放在 [充电机](../block/charger.md) 补充能量, 电脑可以通过连接的充电机访问平板的第一硬盘,此时充电机就像软驱,平板起了软盘的作用. 当你不小心搞坏了平板的系统的时候这很有用。 +可以放在 [充电机](../block/charger.md) 补充能量, 电脑可以通过连接的充电机访问平板的第一硬盘,此时充电机就像软驱,平板起了软盘的作用. 当你不小心搞坏了平板的系统的时候这很有用. -另一个高级用法是通过在一个方块上使用约一秒(长按右键)发射特定方块相关的信号,会有一声蜂鸣通知你信号被发射,仅在安装了信号发射相关升级时可用。 比如[地形分析器](../block/geolyzer.md) 会添加方块信息,如硬度, [导航升级](navigationUpgrade.md) 会添加方块相对于拿着平板的玩家的坐标信息. 拿着平板的时候,这样的方块会被高亮标记。 +另一个高级用法:通过在一个方块上长按右键约一秒,发射特定方块相关的信号,会有一声蜂鸣通知你信号被发射,仅在安装了信号发射相关升级时可用. 比如[地形分析器](../block/geolyzer.md) 会添加方块信息,如硬度, [导航升级](navigationUpgrade.md),会添加方块相对于拿着平板的玩家的坐标信息. 拿着平板的时候,这样的方块会被高亮标记. diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md index 430e1eab5..2cca22766 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/terminal.md @@ -2,8 +2,9 @@ ![Remote access.](oredict:oc:terminal) -终端提供了对 [终端服务器](terminalServer.md)的远程访问. 激活一台在机架安装的[终端服务器](terminalServer.md), 选择要绑定到终端的服务器即可. +终端提供了对[终端服务器](terminalServer.md)的远程访问. 激活一台在机架安装的[终端服务器](terminalServer.md), 选择要绑定到终端的服务器即可. -[终端服务器](terminalServer.md) 提供了[虚拟屏幕](../block/screen1.md) 和[虚拟键盘](../block/keyboard.md)(类似于openssh server),可以通过终端访问. 注意不要将实体键盘和屏幕连接到终端服务器所在的子网,否则发生的事情是未定义行为. 使用绑定了的终端后,一个和电脑连接屏幕和键盘一样的界面会打开,你在这个GUI做的事情将会被反馈到远程的机器 +[终端服务器](terminalServer.md)提供了[虚拟屏幕](../block/screen1.md),[虚拟键盘](../block/keyboard.md)(类似于openssh server),可以通过终端访问.注意:切勿将实体键盘和屏幕连到终端服务器所在的子网,否则发生的事情是未定义行为. 使用绑定了的终端后,一个和电脑连接屏幕和键盘一样的界面会打开,你在这个GUI做的事情将会被反馈到远程的机器 多个终端可以被绑定到同一个[终端服务器](terminalServer.md), 但是他们共享显示和输入,这是和sshd不同的地方. [终端服务器](terminalServer.md) 只能绑定有限数量的终端. 达到上限后,继续绑定会踢出最先绑定的终端. + \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md b/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md index 3a52941e8..f32b26a08 100644 --- a/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md +++ b/src/main/resources/assets/opencomputers/doc/zh_CN/item/wlanCard.md @@ -2,6 +2,6 @@ ![May cause cancer. May not.](oredict:oc:wlanCard) -无线网卡是 [网卡](lanCard.md) 的升级, 添加了收发无线信号的能力。无线信号发射强度决定了信息可以传多远, 信号强度等于方块距离. +无线网卡是 [网卡](lanCard.md) 的升级, 添加了收发无线信号的能力.无线信号发射强度决定了信息可以传多远, 信号强度等于方块距离. -强度越高发射所需能量越大. 地形也会干扰到发送过程. 信号强度 - 方块硬度 > 0 时,信号可以穿透方块,并且强度将衰减到 信号强度 - 方块硬度,空气硬度是1,当强度下降到0时,目标将不会收到信号. 通常你需要保证发送和接受之间的连线是净空的. \ No newline at end of file +强度越高发射所需能量越大.地形也会干扰到发送过程.信号强度 - 方块硬度 > 0 时,信号可以穿透方块,并且强度将衰减到信号强度 - 方块硬度,空气硬度是1,当强度下降到0时,目标将不会收到信号.通常你需要保证发送和接受之间的连线是净空的. \ No newline at end of file From b82f40a5bdc86e076b053848ca47e42ddbb5155f Mon Sep 17 00:00:00 2001 From: Love_Sara_Lee Date: Thu, 15 Jun 2017 14:26:12 +0800 Subject: [PATCH 08/21] remove accidental indent change --- src/main/scala/li/cil/oc/client/gui/Manual.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/client/gui/Manual.scala b/src/main/scala/li/cil/oc/client/gui/Manual.scala index b1bb780da..02a3cc9eb 100644 --- a/src/main/scala/li/cil/oc/client/gui/Manual.scala +++ b/src/main/scala/li/cil/oc/client/gui/Manual.scala @@ -57,7 +57,7 @@ class Manual extends GuiScreen with traits.Window { } def refreshPage(): Unit = { - val content = Option(api.Manual.contentFor(ManualAPI.history.top.path)). + val content = Option(api.Manual.contentFor(ManualAPI.history.top.path)). getOrElse(asJavaIterable(Iterable("Document not found: " + ManualAPI.history.top.path))) document = Document.parse(content) documentHeight = Document.height(document, documentMaxWidth, fontRendererObj) From e1e2e3c80061d2a5e5abb3ca2cb6adb4e183ed39 Mon Sep 17 00:00:00 2001 From: payonel Date: Wed, 5 Jul 2017 16:37:10 -0700 Subject: [PATCH 09/21] ansi code LS_COLORS, blinking, cyan, and multicolor codes LS_COLORS now respects linux style ansi code list, and /bin/ls has been updated to respect that cursor blinking ws being reset too often that has been fixed cyan ideally should be 0x00ffff, but that colors becomes green when switching bit depths. Thus, openos will use 0x00B6FF for ansi code for cyan fixed some vt100 color list parsing --- .../opencomputers/loot/openos/bin/edit.lua | 2 +- .../opencomputers/loot/openos/bin/sh.lua | 1 - .../opencomputers/loot/openos/etc/profile.lua | 3 +- .../loot/openos/lib/core/devfs/01_hw.lua | 4 +- .../loot/openos/lib/core/full_ls.lua | 70 +++++++++---------- .../opencomputers/loot/openos/lib/tty.lua | 3 +- .../opencomputers/loot/openos/lib/vt100.lua | 5 +- 7 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/edit.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/edit.lua index 3fae5aeef..55860887e 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/bin/edit.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/edit.lua @@ -684,4 +684,4 @@ while running do end term.clear() -term.setCursorBlink(false) +term.setCursorBlink(true) diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua index 9bb706eee..0e8f85f6a 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua @@ -26,7 +26,6 @@ if #args == 0 then dofile("/etc/profile.lua") end io.write(sh.expand(os.getenv("PS1") or "$ ")) - tty.setCursorBlink(true) end local command = io.read() if command then diff --git a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua index 8f8fecb2d..b93c01ed4 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua @@ -5,6 +5,7 @@ local fs = require("filesystem") if tty.isAvailable() then tty:write("\27[40m\27[37m") tty.clear() + tty.setCursorBlink(true) end dofile("/etc/motd") @@ -31,7 +32,7 @@ os.setenv("IFS", " ") os.setenv("MANPATH", "/usr/man:.") os.setenv("PAGER", "/bin/more") os.setenv("PS1", "\27[40m\27[31m$HOSTNAME$HOSTNAME_SEPARATOR$PWD # \27[37m") -os.setenv("LS_COLORS", "{FILE=0xFFFFFF,DIR=0x66CCFF,LINK=0xFFAA00,['*.lua']=0x00FF00}") +os.setenv("LS_COLORS", "di=0;36:fi=0:ln=0;33:*.lua=0;32") shell.setWorkingDirectory(os.getenv("HOME")) diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/core/devfs/01_hw.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/core/devfs/01_hw.lua index 50e4a3147..8c8b8e231 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/core/devfs/01_hw.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/core/devfs/01_hw.lua @@ -40,8 +40,8 @@ end function adapter_api.create_toggle(read, write, switch) return { - read = function() return tostring(read()) end, - write = function(value) + read = read and function() return tostring(read()) end, + write = write and function(value) value = text.trim(tostring(value)) local on = value == "1" or value == "true" local off = value == "0" or value == "false" diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_ls.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_ls.lua index 5e7eb6bec..57e178153 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_ls.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/core/full_ls.lua @@ -2,6 +2,8 @@ local fs = require("filesystem") local shell = require("shell") local tty = require("tty") local unicode = require("unicode") +local tx = require("transforms") +local text = require("text") local dirsArg, ops = shell.parse(...) @@ -32,7 +34,6 @@ if #dirsArg == 0 then end local ec = 0 -local gpu = tty.gpu() local fOut = tty.isAvailable() and io.output().tty local function perr(msg) io.stderr:write(msg,"\n") ec = 2 end local function stat(names, index) @@ -56,42 +57,30 @@ local function stat(names, index) return info end local function toArray(i) local r={} for n in i do r[#r+1]=n end return r end -local restore_color = function() end local set_color = function() end -local prev_color -local function colorize() return prev_color end +local function colorize() return end if fOut and not ops["no-color"] then - local LSC = os.getenv("LS_COLORS") - if type(LSC) == "string" then - LSC = require("serialization").unserialize(LSC) + local LSC = tx.foreach(text.split(os.getenv("LS_COLORS") or "", {":"}, true), function(e) + local parts = text.split(e, {"="}, true) + return parts[2], parts[1] + end) + colorize = function(info) + return + info.isLink and LSC.ln or + info.isDir and LSC.di or + LSC['*'..info.ext] or + LSC.fi end - if not LSC then - perr("ls: unparsable value for LS_COLORS environment variable") - else - prev_color = gpu.getForeground() - restore_color = function() gpu.setForeground(prev_color) end - colorize = function(info) - return - info.isLink and LSC.LINK or - info.isDir and LSC.DIR or - LSC['*'..info.ext] or - LSC.FILE or - prev_color - end - set_color=function(c) - if gpu.getForeground() ~= c then - io.stdout:flush() - gpu.setForeground(c) - end - end + set_color=function(c) + io.write(string.char(0x1b), "[", c or "", "m") end end local msft={reports=0,proxies={}} function msft.report(files, dirs, used, proxy) local free = proxy.spaceTotal() - proxy.spaceUsed() - restore_color() - local pattern = "%5i File(s) %11i bytes\n%5i Dir(s) %11s bytes free\n" - io.write(string.format(pattern, files, used, dirs, tostring(free))) + set_color() + local pattern = "%5i File(s) %s bytes\n%5i Dir(s) %11s bytes free\n" + io.write(string.format(pattern, files, tostring(used), dirs, tostring(free))) end function msft.tail(names) local fsproxy = fs.get(names.path) @@ -123,7 +112,7 @@ function msft.final() for proxy,report in pairs(msft.proxies) do table.insert(groups, {proxy=proxy,report=report}) end - restore_color() + set_color() print("Total Files Listed:") for _,pair in ipairs(groups) do local proxy, report = pair.proxy, pair.report @@ -263,7 +252,7 @@ local function display(names) local format = "%s-r%s %+"..tostring(max_size_width).."s %"..tostring(max_date_width).."s" local meta = string.format(format, file_type, write_mode, size, modDate) local item = info.name..link_target - return {{color = prev_color, name = meta}, {color = colorize(info), name = item}} + return {{name = meta}, {color = colorize(info), name = item}} end elseif ops["1"] or not fOut then lines.n = #names @@ -332,7 +321,7 @@ local header = function() end if #dirsArg > 1 or ops.R then header = function(path) if not first_display then print() end - restore_color() + set_color() io.write(path,":\n") end end @@ -366,11 +355,20 @@ for _,dir in ipairs(dirsArg) do table.insert(file_set, dir) end end + io.output():setvbuf("line") -if #file_set > 0 then display(sort(file_set)) end -displayDirList(dir_set) -msft.final() + +local ok, msg = pcall(function() + if #file_set > 0 then display(sort(file_set)) end + displayDirList(dir_set) + msft.final() +end) + io.output():flush() io.output():setvbuf("no") -restore_color() +set_color() + +assert(ok, msg) + return ec + diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua index e54531f24..5b9708cac 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua @@ -352,7 +352,8 @@ function tty.write(_, value) value = window.ansi_escape:sub(5) end for _,catt in ipairs(color_attributes) do - local colors = {0x0,0xff0000,0x00ff00,0xffff00,0x0000ff,0xff00ff,0x00ffff,0xffffff} + -- B6 is closer to cyan in 4 bit color + local colors = {0x0,0xff0000,0x00ff00,0xffff00,0x0000ff,0xff00ff,0x00B6ff,0xffffff} catt = catt - 29 local method = "setForeground" if catt > 10 then diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua index f32488909..396710484 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua @@ -25,7 +25,10 @@ local rules = {} -- [%d+;%d+;..%d+m rules[{"%[", "[%d;]*", "m"}] = function(_, _, number_text) local numbers = {} - number_text:gsub("[^;]*", function(num) + -- add a ; at the end to recompute trailing ; as resets + -- e.g. \27[41;m is actually 41 followed by a reset + (number_text..";"):gsub("([^;]*);?", function(num) + -- if not n this could simply be a ; separator local n = tonumber(num) or 0 if n == 0 then numbers[#numbers + 1] = 40 From fabbb630d4d5da74ad3ba2253dad33b3c883cfbd Mon Sep 17 00:00:00 2001 From: gamax92 Date: Fri, 7 Jul 2017 19:08:10 -0600 Subject: [PATCH 10/21] Make wtrunc count missing glyphs as 1 otherwise this function has odd behavior when compared with wlen --- src/main/scala/li/cil/oc/server/machine/luac/UnicodeAPI.scala | 2 +- src/main/scala/li/cil/oc/server/machine/luaj/UnicodeAPI.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/machine/luac/UnicodeAPI.scala b/src/main/scala/li/cil/oc/server/machine/luac/UnicodeAPI.scala index 0be3f1ead..c327815c4 100644 --- a/src/main/scala/li/cil/oc/server/machine/luac/UnicodeAPI.scala +++ b/src/main/scala/li/cil/oc/server/machine/luac/UnicodeAPI.scala @@ -81,7 +81,7 @@ class UnicodeAPI(owner: NativeLuaArchitecture) extends NativeLuaAPI(owner) { var width = 0 var end = 0 while (width < count) { - width += FontUtils.wcwidth(value(end)) + width += math.max(1, FontUtils.wcwidth(value(end))) end += 1 } if (end > 1) lua.pushString(value.substring(0, end - 1)) diff --git a/src/main/scala/li/cil/oc/server/machine/luaj/UnicodeAPI.scala b/src/main/scala/li/cil/oc/server/machine/luaj/UnicodeAPI.scala index b791210e1..2f008bddb 100644 --- a/src/main/scala/li/cil/oc/server/machine/luaj/UnicodeAPI.scala +++ b/src/main/scala/li/cil/oc/server/machine/luaj/UnicodeAPI.scala @@ -53,7 +53,7 @@ class UnicodeAPI(owner: LuaJLuaArchitecture) extends LuaJAPI(owner) { var width = 0 var end = 0 while (width < count) { - width += FontUtils.wcwidth(value(end)) + width += math.max(1, FontUtils.wcwidth(value(end))) end += 1 } if (end > 1) LuaValue.valueOf(value.substring(0, end - 1)) From d753d83bb421862a3196481f04b1a050c72dc6f0 Mon Sep 17 00:00:00 2001 From: payonel Date: Fri, 7 Jul 2017 17:28:47 -0700 Subject: [PATCH 11/21] reverting read handler weirdness, it didn't work right Users shouldn't use tty read nor write directly, they should always use io or term. But...it is messy to try to hide these methods as private methods in the io library, so I'll just have to check the io tty-ness just in case --- .../opencomputers/loot/openos/bin/sh.lua | 10 ++++----- .../opencomputers/loot/openos/etc/profile.lua | 6 ++++-- .../loot/openos/lib/core/lua_shell.lua | 6 +++--- .../loot/openos/lib/filesystem.lua | 1 - .../opencomputers/loot/openos/lib/term.lua | 3 --- .../opencomputers/loot/openos/lib/tty.lua | 21 +++++++++---------- 6 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua index 0e8f85f6a..f5fde9c62 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua @@ -12,7 +12,8 @@ end shell.prime() local update_gpu = io.output().tty -local interactive = io.input().tty +local needs_profile = io.input().tty +local input_handler = {hint = sh.hintHandler} if #args == 0 then while true do @@ -20,14 +21,13 @@ if #args == 0 then while not tty.isAvailable() do event.pull("term_available") end - if interactive == true then -- first time run AND interactive - interactive = 0 - tty.setReadHandler({hint = sh.hintHandler}) + if needs_profile then -- first time run AND interactive + needs_profile = nil dofile("/etc/profile.lua") end io.write(sh.expand(os.getenv("PS1") or "$ ")) end - local command = io.read() + local command = tty:read(input_handler) if command then command = text.trim(command) if command == "exit" then diff --git a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua index b93c01ed4..9fc3df6d1 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua @@ -3,8 +3,10 @@ local tty = require("tty") local fs = require("filesystem") if tty.isAvailable() then - tty:write("\27[40m\27[37m") - tty.clear() + if io.stdout.tty then + io.write("\27[40m\27[37m") + tty.clear() + end tty.setCursorBlink(true) end dofile("/etc/motd") diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/core/lua_shell.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/core/lua_shell.lua index 82f4dbe32..ad7997a63 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/core/lua_shell.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/core/lua_shell.lua @@ -68,7 +68,7 @@ local function findKeys(t, r, prefix, name) end end -tty.setReadHandler({hint = function(line, index) +local read_handler = {hint = function(line, index) line = (line or "") local tail = line:sub(index) line = line:sub(1, index - 1) @@ -85,7 +85,7 @@ tty.setReadHandler({hint = function(line, index) table.insert(hints, key .. tail) end return hints -end}) +end} io.write("\27[37m".._VERSION .. " Copyright (C) 1994-2017 Lua.org, PUC-Rio\n") io.write("\27[33mEnter a statement and hit enter to evaluate it.\n") @@ -94,7 +94,7 @@ io.write("Press Ctrl+D to exit the interpreter.\n\27[37m") while tty.isAvailable() do io.write(env._PROMPT) - local command = io.read() + local command = tty:read(read_handler) if not command then -- eof return end diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/filesystem.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/filesystem.lua index 2171f4279..2d6d7740d 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/filesystem.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/filesystem.lua @@ -24,7 +24,6 @@ end local function saveConfig() local root = filesystem.get("/") if root and not root.isReadOnly() then - filesystem.makeDirectory("/etc") local f = filesystem.open("/etc/filesystem.cfg", "w") if f then f:write("autorun="..tostring(isAutorunEnabled)) diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/term.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/term.lua index 207c681c0..3ce1df9ff 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/term.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/term.lua @@ -194,9 +194,6 @@ function term.write(value, wrap) end function term.read(history, dobreak, hint, pwchar, filter) - if not io.stdin.tty then - return io.read("*L") - end history = history or {} local handler = history handler.hint = handler.hint or hint diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua index 5b9708cac..b860dbb77 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua @@ -3,7 +3,6 @@ local event = require("event") local kb = require("keyboard") local component = require("component") local computer = require("computer") -local process = require("process") local keys = kb.keys local tty = {} @@ -19,11 +18,6 @@ tty.window = tty.internal = {} -function tty.setReadHandler(handler) - checkArg(1, handler, "table") - process.info().data.handler = handler -end - function tty.key_down_handler(handler, cursor, char, code) local data = cursor.data local c = false @@ -268,15 +262,17 @@ function tty.internal.build_vertical_reader() end -- read n bytes, n is unused -function tty.read(_, handler, cursor) +function tty.read(self, handler, cursor) checkArg(1, handler, "table", "number") checkArg(2, cursor, "table", "nil") - if type(handler) == "number" then - -- standard read as a stream, asking for n bytes - handler = process.info().data.handler or {} + if not io.stdin.tty or io.stdin.stream ~= self then + return io.stdin:readLine(false) end + if type(handler) ~= "table" then + handler = {} + end handler.index = 0 cursor = cursor or tty.internal.build_vertical_reader() @@ -324,7 +320,10 @@ function tty.setCursor(x, y) window.x, window.y = x, y end -function tty.write(_, value) +function tty.write(self, value) + if not io.stdout.tty or io.stdout.stream ~= self then + return io.write(value) + end local gpu = tty.gpu() if not gpu then return From 3d6e77f87985507df5eef14215577e0ce1fa1769 Mon Sep 17 00:00:00 2001 From: payonel Date: Sat, 8 Jul 2017 00:47:19 -0700 Subject: [PATCH 12/21] fix gsub issue: lua 5.3 changed from lua 5.2 --- .../opencomputers/loot/openos/lib/vt100.lua | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua index 396710484..4e6111b50 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/vt100.lua @@ -1,3 +1,4 @@ +local text = require("text") local vt100 = {} -- runs patterns on ansi until failure @@ -25,18 +26,26 @@ local rules = {} -- [%d+;%d+;..%d+m rules[{"%[", "[%d;]*", "m"}] = function(_, _, number_text) local numbers = {} - -- add a ; at the end to recompute trailing ; as resets + -- prefix and suffix ; act as reset -- e.g. \27[41;m is actually 41 followed by a reset - (number_text..";"):gsub("([^;]*);?", function(num) - -- if not n this could simply be a ; separator - local n = tonumber(num) or 0 - if n == 0 then + number_text = ";" .. number_text:gsub("^;$","") .. ";" + local parts = text.split(number_text, {";"}) + local last_was_break + for _,part in ipairs(parts) do + local num = tonumber(part) + if not num then + num = last_was_break and 0 + last_was_break = true + else + last_was_break = false + end + if num == 0 then numbers[#numbers + 1] = 40 numbers[#numbers + 1] = 37 - else - numbers[#numbers + 1] = n + elseif num then + numbers[#numbers + 1] = num end - end) + end return numbers end From 9fbef39829a690ac641091ccb38e1095972bf4b2 Mon Sep 17 00:00:00 2001 From: cyber01 Date: Thu, 13 Jul 2017 11:31:30 +0300 Subject: [PATCH 13/21] Upgrading to the current state (compared to the original OS), translated the missing parts. Merged with @MoonlightOwl changes --- .../opencomputers/doc/ru_RU/block/adapter.md | 1 + .../assets/opencomputers/doc/ru_RU/block/index.md | 2 +- .../assets/opencomputers/doc/ru_RU/block/rack.md | 2 +- .../assets/opencomputers/doc/ru_RU/index.md | 3 ++- .../opencomputers/doc/ru_RU/item/debugCard.md | 2 ++ .../assets/opencomputers/doc/ru_RU/item/index.md | 1 + .../doc/ru_RU/item/inventoryControllerUpgrade.md | 2 ++ .../assets/opencomputers/doc/ru_RU/item/mfu.md | 7 +++++++ .../opencomputers/doc/ru_RU/item/redstoneCard1.md | 2 +- .../doc/ru_RU/item/tankControllerUpgrade.md | 2 ++ .../resources/assets/opencomputers/lang/ru_RU.lang | 14 +++++++++++++- 11 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/opencomputers/doc/ru_RU/item/mfu.md diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/block/adapter.md b/src/main/resources/assets/opencomputers/doc/ru_RU/block/adapter.md index b072ea457..53bc83c08 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/block/adapter.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/block/adapter.md @@ -5,3 +5,4 @@ Адаптеры позволяют [компьютерам](../general/computer.md) взаимодействовать с блоками Minecraft и блоками из других модов. Поддерживаемые блоки, прилегающие к адаптеру, будут отображаться как компоненты [компьютера](../general/computer.md), подключенного к адаптеру. В дополнение к этому, адаптеры добавляют слот для нескольких улучшений. Например, [контроллер инвентаря](../item/inventoryControllerUpgrade.md) позволяет компьютеру получать подробную информацию о предметах в инвентаре, для блока подключенного через адаптер, также это улучшение может быть установлено и в другие устройства (например [роботов](robot.md) или [дронов](../item/drone.md)), также [контроллер бака](../item/tankControllerUpgrade.md) предоставляет аналогичный функционал, только для жидкостей. +Тажке, вы можете вставить связанный [МФУ](../item/mfu.md) для взаимодействия с блоками в нескольких местах. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/block/index.md b/src/main/resources/assets/opencomputers/doc/ru_RU/block/index.md index c8087e8f3..d993f70a0 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/block/index.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/block/index.md @@ -8,7 +8,7 @@ * [Системный блок](case1.md) * [Микроконтроллер](microcontroller.md) * [Робот](robot.md) -* [Серверная стойка](serverRack.md) +* [Серверная стойка](rack.md) ## Компоненты diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/block/rack.md b/src/main/resources/assets/opencomputers/doc/ru_RU/block/rack.md index bd8ffe939..59083fb52 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/block/rack.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/block/rack.md @@ -1,6 +1,6 @@ # Стойка -![Бесплатное жилье.](oredict:oc:serverRack) +![Бесплатное жилье.](oredict:oc:rack) Стойка может содержать до 4 подключемых устройств, таких как: [серверы](../item/server1.md), [терминальные серверы](../item/terminalServer.md) и [подключаемые дисководы](../item/diskDriveMountable.md). Соединение между подключаемыми устройствами в стойку может быть настроено с помощью интерфейса стойки. В частности, если [серверы](../item/server1.md) содержат компоненты, которые поддерживают работу с сетью, такие как [сетевые карты](../item/lanCard.md), то будут установлены только сетевые соединения. Эти соединения будут служить только для передачи сетевых сообщений, компоненты не будут видны через них. Такие подключения отличаются более тонкой линией от "главных", которые имеют доступ к компонентам. Каждое внутреннее соединение должно быть между подключаемым устройством/компонентом и шиной, соединенной со стороной стойки. Для соеднинения нескольких подключаемых устройств вместе, подключите их на одну общую шину. diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/index.md b/src/main/resources/assets/opencomputers/doc/ru_RU/index.md index f60431a61..749024ce0 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/index.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/index.md @@ -7,6 +7,7 @@ OpenComputers это мод, который добавляет модульны ## Содержание ### Устройства + - [Компьютеры](general/computer.md) - [Серверы](item/server1.md) - [Микроконтроллеры](block/microcontroller.md) @@ -32,7 +33,7 @@ OpenComputers это мод, который добавляет модульны Устройства OpenComputers совместимы с множеством других модов, что позволяет производить манипуляции над блоками и сущностями (через [адаптер](block/adapter.md) или добавляет специфические улучшения для [роботов](block/robot.md) и [дронов](item/drone.md)). Энергия может быть также получена из других модов, например, Redstone Flux, IndustrialCraft2 EU, Mekanism Joules, Applied Energistics 2 и Factorization Charge. -Устройства в OpenComputers имеют дополнительные функции, а также ограничения. [Компьютеры](general/computer.md) основа всего и они могут обслуживать различное количество компонентов, в зависимости от уровня используемого процессора. [Компьютеры](general/computer.md), также имеют доступ к компонентам со всех шести сторон. [Серверы](item/server1.md) могут подключаться к большему количеству компонентов (внешних или внутренних) чем [компьютеры](general/computer.md), за счет использования [компонентных шин](item/componentBus1.md); Однако, в [серверных стойках](block/serverRack.md), каждый [сервер](item/server1.md) имеет доступ к компонентам только с одной стороны [серверной стойки](block/serverRack.md), как это настроено в интерфейсе [серверной стойки](block/serverRack.md). [Микроконтроллеры](block/microcontroller.md) еще сильнее ограничены (по сравнению с [компьютерами](general/computer.md)), они не имеют [жесткого диска](item/hdd1.md) и [дисковода](block/diskDrive.md), это означает, что [OpenOS](general/openOS.md) не может быть установлена на [микроконтроллер](block/microcontroller.md). [Микроконтроллеры](block/microcontroller.md) имеют слот для [EEPROM](item/eeprom.md) и могут быть запрограммированы для специфических задач. +Устройства в OpenComputers имеют дополнительные функции, а также ограничения. [Компьютеры](general/computer.md) основа всего и они могут обслуживать различное количество компонентов, в зависимости от уровня используемого процессора. [Компьютеры](general/computer.md), также имеют доступ к компонентам со всех шести сторон. [Серверы](item/server1.md) могут подключаться к большему количеству компонентов (внешних или внутренних) чем [компьютеры](general/computer.md), за счет использования [компонентных шин](item/componentBus1.md); Однако, в [серверных стойках](block/rack.md), каждый [сервер](item/server1.md) имеет доступ к компонентам только с одной стороны [серверной стойки](block/rack.md), как это настроено в интерфейсе [серверной стойки](block/rack.md). [Микроконтроллеры](block/microcontroller.md) еще сильнее ограничены (по сравнению с [компьютерами](general/computer.md)), они не имеют [жесткого диска](item/hdd1.md) и [дисковода](block/diskDrive.md), это означает, что [OpenOS](general/openOS.md) не может быть установлена на [микроконтроллер](block/microcontroller.md). [Микроконтроллеры](block/microcontroller.md) имеют слот для [EEPROM](item/eeprom.md) и могут быть запрограммированы для специфических задач. [Роботы](block/robot.md) это передвижные [компьютеры](general/computer.md) и они могут взаимодействовать с игровым миром (но не могут взаимодействовать с внешними блоками OpenComputers). В отличие от [компьютеров](general/computer.md), после создания, компоненты внутри [робота](block/robot.md) не могут быть извлечены. Для обхода этого ограничения, [роботы](block/robot.md) могут быть созданы с [улучшением компонентов](item/upgradeContainer1.md) или [улучшением карт](item/cardContainer1.md), что позволяет в любой момент изменить конфигурацию карта и улучшений, если требуется. Операционная система [OpenOS](general/openOS.md) может быть установлена в [роботов](block/robot.md) добавлением [дисковода](block/diskDrive.md) в один из слотов при сборке, после чего вы сможете вставить [дискету](item/floppy.md) или во время сборки вставьте [жесткий диск](item/hdd1.md) с установленной на него [OpenOS](general/openOS.md). Для полного изменения конфигурации [робота](block/robot.md) вам потребуется [разборщик](block/disassembler.md). [Дроны](item/drone.md) это урезанная версия [роботов](block/robot.md). Они двигаются по-другому, имеют несколько слотов для компонентов и не имеют операционной системы (также как и [микроконтроллеры](block/microcontroller.md), [дроны](item/drone.md) могут быть сконфигурированы с помощью [EEPROM](item/eeprom.md), для выполнения специфических задач). В основном, [роботы](block/robot.md) и [дроны](item/drone.md) имеют одни и те же компоненты и улучшения; Однако, эффективность улучшений различна, например у [дронов](item/drone.md) [улучшение инвентаря](item/inventoryUpgrade.md) добавит только 4 слота за каждое улучшение и позволяет иметь всего 8 слотов, в то время, как [роботы](block/robot.md) могут иметь больше [улучшений инвентаря](item/inventoryUpgrade.md) (в сумме 4), а также большее количество слотов с каждым улучшение (по 16 слотов на улучшение). diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/item/debugCard.md b/src/main/resources/assets/opencomputers/doc/ru_RU/item/debugCard.md index 270d4a1a1..9674aae34 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/item/debugCard.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/item/debugCard.md @@ -5,3 +5,5 @@ Отладочная карта, это креативный предмет, предназначенный изначально для отладки некоторых вещей, за счет автоматизации процесса. С тех пор она обрела большую функциональность, что делает ее идеальным инструментом для создания карт. Обратите внимание, что вы можете привязать/отвязать карту, нажав кнопку `Красться`, держа в руках карту, это означает, что `команды` будут выполнены на основе вашего уровня доступа, а не умолчаний OpenComputers. + +Отладочная карта может принимать сообщения как и [связанная карта](linkedCard.md), через событие `debug_message`. Вы можете отправить сообщение используя другую отладочную карту через `sendDebugMessage` или Minecraft команду `/oc_sendDebugMessage` (или `/oc_sdbg`). \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/item/index.md b/src/main/resources/assets/opencomputers/doc/ru_RU/item/index.md index 1b7ccc1e4..59dcf3e68 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/item/index.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/item/index.md @@ -43,6 +43,7 @@ * [Контроллер инвентаря](inventoryControllerUpgrade.md) * [Инвентарь](inventoryUpgrade.md) * [Поводок](leashUpgrade.md) +* [МФУ](mfu.md) * [Навигация](navigationUpgrade.md) * [Поршень](pistonUpgrade.md) * [Табличка](signUpgrade.md) diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/item/inventoryControllerUpgrade.md b/src/main/resources/assets/opencomputers/doc/ru_RU/item/inventoryControllerUpgrade.md index be1396e4a..5762aff7d 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/item/inventoryControllerUpgrade.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/item/inventoryControllerUpgrade.md @@ -5,3 +5,5 @@ Контроллер инвентаря добавляет еще больше действий с инвентарем для [роботов](../block/robot.md) и [дронов](drone.md). Это позволяет устройству явно указывать слоты для внешних инвентарей. Также позволяет получать подробную информацию о стаках предметов. Напоследок позволяет [роботам](../block/robot.md) менять инструменты в зависимости от блока, без посторонней помощи. Данное улучшение может быть вставлено в [адаптеры](../block/adapter.md), что добавит дополнительные методы работы с инвентарем для [адаптера](../block/adapter.md) также как для [робота](../block/robot.md). Это не позволяет [адаптеру](../block/adapter.md) перемещать предметы в/из инвентари. Данная функция доступна только для [роботов](../block/robot.md) и [дронов](drone.md). + +Смотрите также: [Транспозер](../block/transposer.md) \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/item/mfu.md b/src/main/resources/assets/opencomputers/doc/ru_RU/item/mfu.md new file mode 100644 index 000000000..4885535d7 --- /dev/null +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/item/mfu.md @@ -0,0 +1,7 @@ +# МФУ + +![Вы никогда не узнаете истинного смысла этой аббревиатуры.](oredict:oc:mfu) + +Это улучшение работает как удаленный [адаптер](../block/adapter.md). Присев кликните на любую сторону любого блока, чтобы привязать МФУ к определенной позиции. Потом, поместите его в адаптер рядом (расстояние очень ограничено) и он будет действовать так, будто адаптер был расположен рядом со стороной блока с которой вы его связали! + +Во время своей работы удаленный адаптер потребляет энергию. \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/item/redstoneCard1.md b/src/main/resources/assets/opencomputers/doc/ru_RU/item/redstoneCard1.md index 0537ed380..9a4f66e5f 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/item/redstoneCard1.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/item/redstoneCard1.md @@ -6,4 +6,4 @@ Если у вас установлен любой из модов, которые добавляют многожильные провода, такие как RedLogic, Project Red или MineFactory Reloaded и иные, вы в полной мере можете взаимодействовать и с ними. -Сторона сигнала аналогична стороне [системного блока](../block/case1.md) / [робота](../block/robot.md) / [серверной стойки](../block/serverRack.md). Это означает, что если вы смотрите на компьютер спереди, `sides.right` будет слева от вас. +Сторона сигнала аналогична стороне [системного блока](../block/case1.md) / [робота](../block/robot.md) / [серверной стойки](../block/rack.md). Это означает, что если вы смотрите на компьютер спереди, `sides.right` будет слева от вас. diff --git a/src/main/resources/assets/opencomputers/doc/ru_RU/item/tankControllerUpgrade.md b/src/main/resources/assets/opencomputers/doc/ru_RU/item/tankControllerUpgrade.md index 883499f50..21a4bd1de 100644 --- a/src/main/resources/assets/opencomputers/doc/ru_RU/item/tankControllerUpgrade.md +++ b/src/main/resources/assets/opencomputers/doc/ru_RU/item/tankControllerUpgrade.md @@ -5,3 +5,5 @@ Контроллер бака, аналогичен [контроллеру инвентаря](inventoryControllerUpgrade.md), только для жидкостей. Позволяет устройствам получать подробную информацию о баках и их содержимом. Это улучшение может быть установлено в [адаптеры](../block/adapter.md), позволяя [компьютерам](../general/computer.md), подключенным к [адаптеру](../block/adapter.md) запрашивать информацию о баках, прилегающих к [адаптеру](../block/adapter.md). + +Смотрите также: [Транспозер](../block/transposer.md) \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/lang/ru_RU.lang b/src/main/resources/assets/opencomputers/lang/ru_RU.lang index 655ca7fb1..39ff9f6de 100644 --- a/src/main/resources/assets/opencomputers/lang/ru_RU.lang +++ b/src/main/resources/assets/opencomputers/lang/ru_RU.lang @@ -30,6 +30,7 @@ tile.oc.print.name=3D модель tile.oc.printer.name=3D принтер tile.oc.raid.name=RAID tile.oc.redstone.name=Красный камень (ввод/вывод) +tile.oc.relay.name=Ретранслятор tile.oc.robot.name=Робот tile.oc.robotAfterimage.name=Робот tile.oc.screen1.name=Монитор (1-ый уровень) @@ -61,6 +62,9 @@ item.oc.CPU0.name=Центральный процессор (ЦП) (1-ый ур item.oc.CPU1.name=Центральный процессор (ЦП) (2-ой уровень) item.oc.CPU2.name=Центральный процессор (ЦП) (3-ий уровень) item.oc.CuttingWire.name=Проволока +item.oc.DataCard0.name=Карта данных (1-ый уровень) +item.oc.DataCard1.name=Карта данных (2-ой уровень) +item.oc.DataCard2.name=Карта данных (3-ий уровень) item.oc.DebugCard.name=Отладочная карта item.oc.Debugger.name=Сетевой отладчик item.oc.DiamondChip.name=Алмазный обломок @@ -115,6 +119,7 @@ item.oc.TabletCase0.name=Корпус планшета (1-ый уровень) item.oc.TabletCase1.name=Корпус планшета (2-ой уровень) item.oc.TabletCase3.name=Корпус планшета (Креатив) item.oc.Terminal.name=Беспроводной терминал +item.oc.TerminalServer.name=Терминальный сервер item.oc.TexturePicker.name=Выбор текстур item.oc.Transistor.name=Транзистор item.oc.UpgradeAngel.name="Ангельское" улучшение @@ -139,6 +144,7 @@ item.oc.UpgradeHover1.name=Улучшение "Парение" (2-ый уров item.oc.UpgradeInventory.name=Улучшение "Инвентарь" item.oc.UpgradeInventoryController.name=Улучшение "Контроллер инвентаря" item.oc.UpgradeLeash.name=Улучшение "Поводок" +item.oc.UpgradeMF.name=МФУ item.oc.UpgradeNavigation.name=Улучшение "Навигация" item.oc.UpgradePiston.name=Улучшение "Поршень" item.oc.UpgradeSign.name=Улучшение "Табличка: ввод/вывод" @@ -210,11 +216,13 @@ oc:gui.Raid.Warning=§4Добавление диска - очистит его.[ oc:gui.Robot.Power=Энергия oc:gui.Robot.TurnOff=Выключить oc:gui.Robot.TurnOn=Включить -oc:gui.ServerRack.None=Нет oc:gui.ServerRack.Back=Сзади oc:gui.ServerRack.Bottom=Снизу oc:gui.ServerRack.Left=Слева +oc:gui.ServerRack.None=Нет oc:gui.ServerRack.Right=Справа +oc:gui.Rack.Enabled=Включено +oc:gui.Rack.Disabled=Выключено oc:gui.ServerRack.Top=Сверху oc:gui.ServerRack.SwitchExternal=Внешний oc:gui.ServerRack.SwitchInternal=Внутренний @@ -341,6 +349,7 @@ oc:tooltip.Switch=Позволяет соединять различные се oc:tooltip.Tablet=Планшет, полностью готов к работе с Lua. Может быть отключен нажатием правой кнопки мыши + Shift. oc:tooltip.TabletCase=Простой корпус для планшета. Поместите в сборщик, добавьте компонентов и соберите себе компьютер. oc:tooltip.Terminal=Позволяет дистанционно управлять сервером, пока вы находитесь в радиусе его действия. Действует как портативный дисплей с клавиатурой.[nl] Shift+ПКМ по серверу в стойке для привязки к нему терминала. +oc:tooltip.TerminalServer=Бекенд, к которому можно подключить беспроводной терминал. Имеет виртуальный экран и клавиатуру. oc:tooltip.TexturePicker=Простой инструмент, позволяющий узнать название текстуры блока, которое можно использовать в 3D печати. oc:tooltip.Tier=§8Уровень %s oc:tooltip.NetSplitter=Работает как переключатель. Соединение каждой стороны переключается ключем. При подаче сигнала красного камня все соединения инвертируются. @@ -360,6 +369,9 @@ oc:tooltip.UpgradeHover=Данное улучшение позволяет ро oc:tooltip.UpgradeInventory=Это улучшение даёт место в инвентаре для робота. Без него, роботы не смогут хранить предметы внутри. oc:tooltip.UpgradeInventoryController=Это улучшение позволяет роботу контролировать взаимодействие с внешними инвентарями и позволяет ему менять свой экипированный инструмент предметом из его инвентаря. oc:tooltip.UpgradeLeash=Позволяет некоторым устройствам, таким как дроны, цеплять животных на поводок. Много животных, очень. +oc:tooltip.UpgradeMF=Позволяет адаптерам взаимодействовать с блоками на удалении от них. +oc:tooltip.UpgradeMF.Linked=§fСоединение установлено§7 +oc:tooltip.UpgradeMF.Unlinked=§fНет соединения§7 oc:tooltip.UpgradeNavigation=Позволяет определять положение и ориентацию робота. Положение определяется относительно центра карты, использованной в крафте улучшения. oc:tooltip.UpgradePiston=Позволяет двигать блоки, также как и поршни. §lНе§7 может двигать животных, совсем. oc:tooltip.UpgradeSign=Позволяет читать и писать текст на табличках. From c4fde0dbd214048cad770bd17fbcb341f397ee9b Mon Sep 17 00:00:00 2001 From: Xander Date: Sat, 15 Jul 2017 12:08:57 +0800 Subject: [PATCH 14/21] Fix renderLeash patch signature. --- src/main/scala/li/cil/oc/common/asm/ClassTransformer.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/common/asm/ClassTransformer.scala b/src/main/scala/li/cil/oc/common/asm/ClassTransformer.scala index cad8fd44e..adac32777 100644 --- a/src/main/scala/li/cil/oc/common/asm/ClassTransformer.scala +++ b/src/main/scala/li/cil/oc/common/asm/ClassTransformer.scala @@ -25,7 +25,7 @@ object ObfNames { final val Method_recreateLeash = Array("recreateLeash", "func_110165_bF", "da") final val Method_recreateLeashDesc = Array("()V") final val Method_renderLeash = Array("renderLeash", "func_110827_b", "b") - final val Method_renderLeashDesc = Array("(Lsg;DDDFF)V", "(Lnet/minecraft/entity/EntityLiving;DDDFF)V") + final val Method_renderLeashDesc = Array("(L"+Class_EntityLiving(1)+";DDDFF)V", "(Lnet/minecraft/entity/EntityLiving;DDDFF)V") final val Method_validate = Array("validate", "func_145829_t") final val Method_invalidate = Array("invalidate", "func_145843_s") final val Method_onChunkUnload = Array("onChunkUnload", "func_76623_d") From e4c0df8bfa6d0109f0e59c2103592d399af55ab2 Mon Sep 17 00:00:00 2001 From: payonel Date: Wed, 19 Jul 2017 22:33:41 -0700 Subject: [PATCH 15/21] Add tree utility --- .../opencomputers/loot/openos/bin/tree.lua | 321 ++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 src/main/resources/assets/opencomputers/loot/openos/bin/tree.lua diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/tree.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/tree.lua new file mode 100644 index 000000000..e831cee04 --- /dev/null +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/tree.lua @@ -0,0 +1,321 @@ +local shell = require("shell") +local fs = require("filesystem") +local tx = require("transforms") +local text = require("text") + +local args, opts = shell.parse(...) + +local function die(...) + io.stderr:write(...) + os.exit(1) +end + +do -- handle cli + if opts.help then + print([[Usage: tree [OPTION]... [FILE]... + -a, --all do not ignore entries starting with . + --full-time with -l, print time in full iso format + -h, --human-readable with -l, print human readable sizes + --si likewise, but use powers of 1000 not 1024 + --level=LEVEL descend only LEVEL directories deep + --color=WHEN WHEN can be + auto - colorize output only if writing to a tty, + always - always colorize output, + never - never colorize output; (default: auto) + -l use a long listing format + -f print the full path prefix for each file + -i do not print indentation lines + -p append "/" indicator to directories + -Q, --quote quote filenames with double quotes + -r, --reverse reverse order while sorting + -S sort by file size + -t sort by modification type, newest first + -X sort alphabetically by entry extension + -C do not count files and directories + -R count root directories like other files + --help print this help and exit]]) + return 0 + end + + if #args == 0 then + table.insert(args, ".") + end + + opts.level = tonumber(opts.level) or math.huge + if opts.level < 1 then + die("Invalid level, must be greater than 0") + end + + opts.color = opts.color or "auto" + if opts.color == "auto" then + opts.color = io.stdout.tty and "always" or "never" + end + + if opts.color ~= "always" and opts.color ~= "never" then + die("Invalid value for --color=WHEN option; WHEN should be auto, always or never") + end +end + +local function peekable(iterator, state, var1) + local nextItem = {iterator(state, var1)} + + return setmetatable({ + peek = function() + return table.unpack(nextItem) + end + }, { + __call = coroutine.wrap(function() + while true do + local item = nextItem + nextItem = {iterator(state, nextItem[1])} + coroutine.yield(table.unpack(item)) + if nextItem[1] == nil then break end + end + end) + }) +end + +local function filter(entry) + return opts.a or entry:sub(1, 1) ~= "." +end + +local function stat(path) + local st = {} + st.path = path + st.name = fs.name(path) or "/" + st.sortName = st.name:gsub("^%.","") + st.time = fs.lastModified(path) + st.isLink = fs.isLink(path) + st.isDirectory = fs.isDirectory(path) + st.size = st.isLink and 0 or fs.size(path) + st.extension = st.name:match("(%.[^.]+)$") or "" + st.fs = fs.get(path) + return st +end + +local colorize +if opts.color == "always" then + -- from /lib/core/full_ls.lua + local colors = tx.foreach(text.split(os.getenv("LS_COLORS") or "", {":"}, true), function(e) + local parts = text.split(e, {"="}, true) + return parts[2], parts[1] + end) + + function colorize(stat) + return stat.isLink and colors.ln or + stat.isDirectory and colors.di or + colors["*" .. stat.extension] or + colors.fi + end +end + +local function list(path) + return coroutine.wrap(function() + local l = {} + for entry in fs.list(path) do + if filter(entry) then + table.insert(l, stat(fs.concat(path, entry))) + end + end + + if opts.S then + table.sort(l, function(a, b) + return a.size < b.size + end) + elseif opts.t then + table.sort(l, function(a, b) + return a.time < b.time + end) + elseif opts.X then + table.sort(l, function(a, b) + return a.extension < b.extension + end) + else + table.sort(l, function(a, b) + return a.sortName < b.sortName + end) + end + + for i = opts.r and #l or 1, opts.r and 1 or #l, opts.r and -1 or 1 do + coroutine.yield(l[i]) + end + end) +end + +local function digRoot(rootPath) + coroutine.yield(stat(rootPath), {}) + + if not fs.isDirectory(rootPath) then + return + end + local iterStack = {peekable(list(rootPath))} + local pathStack = {rootPath} + local levelStack = {not not iterStack[#iterStack]:peek()} + + + repeat + local entry = iterStack[#iterStack]() + + if entry then + levelStack[#levelStack] = not not iterStack[#iterStack]:peek() + + local path = fs.concat(fs.concat(table.unpack(pathStack)), entry.name) + + coroutine.yield(entry, levelStack) + + if entry.isDirectory and opts.level > #levelStack then + table.insert(iterStack, peekable(list(path))) + table.insert(pathStack, entry.name) + table.insert(levelStack, not not iterStack[#iterStack]:peek()) + end + else + table.remove(iterStack) + table.remove(pathStack) + table.remove(levelStack) + end + until #iterStack == 0 +end + +local function dig(roots) + return coroutine.wrap(function() + for _, root in ipairs(roots) do + digRoot(root) + end + end) +end + +local function nod(n) -- from /lib/core/full_ls.lua + return n and (tostring(n):gsub("(%.[0-9]+)0+$","%1")) or "0" +end + +local function formatFSize(size) -- from /lib/core/full_ls.lua + if not opts.h and not opts["human-readable"] and not opts.si then + return tostring(size) + end + + local sizes = {"", "K", "M", "G"} + local unit = 1 + local power = opts.si and 1000 or 1024 + + while size > power and unit < #sizes do + unit = unit + 1 + size = size / power + end + + return nod(math.floor(size*10)/10)..sizes[unit] +end + +local function pad(txt) -- from /lib/core/full_ls.lua + txt = tostring(txt) + return #txt >= 2 and txt or "0" .. txt +end + +local function formatTime(epochms) -- from /lib/core/full_ls.lua + local month_names = {"January","February","March","April","May","June", + "July","August","September","October","November","December"} + + if epochms == 0 then return "" end + + local d = os.date("*t", epochms) + local day, hour, min, sec = nod(d.day), pad(nod(d.hour)), pad(nod(d.min)), pad(nod(d.sec)) + + if opts["full-time"] then + return string.format("%s-%s-%s %s:%s:%s ", d.year, pad(nod(d.month)), pad(day), hour, min, sec) + else + return string.format("%s %+2s %+2s:%+2s ", month_names[d.month]:sub(1,3), day, hour, pad(min)) + end +end + +local function writeEntry(entry, levelStack) + for i, hasNext in ipairs(levelStack) do + if opts.i then break end + + if i == #levelStack then + if hasNext then + io.write("├── ") + else + io.write("└── ") + end + else + if hasNext then + io.write("│   ") + else + io.write(" ") + end + end + end + + if opts.l then + io.write("[") + + io.write(entry.isDirectory and "d" or entry.isLink and "l" or "f", "-") + io.write("r", entry.fs.isReadOnly() and "-" or "w", " ") + + io.write(formatFSize(entry.size), " ") + + io.write(formatTime(entry.time)) + io.write("] ") + end + + if opts.Q then io.write('"') end + + if opts.color == "always" then + io.write("\27[" .. colorize(entry) .. "m") + end + + if opts.f then + io.write(entry.path) + else + io.write(entry.name) + end + + if opts.color == "always" then + io.write("\27[0m") + end + + if opts.p and entry.isDirectory then + io.write("/") + end + + if opts.Q then io.write('"') end + io.write("\n") +end + +local function writeCount(dirs, files) + io.write("\n") + io.write(dirs, " director", dirs == 1 and "y" or "ies") + io.write(", ") + io.write(files, " file", files == 1 and "" or "s") + io.write("\n") +end + +local dirs, files = 0, 0 + +local roots = {} +for _, arg in ipairs(args) do + local path = shell.resolve(arg) + local real, reason = fs.realPath(path) + if not real then + die("cannot access ", path, ": ", reason or "unknown error") + elseif not fs.exists(path) then + die("cannot access ", path, ":", "No such file or directory") + else + table.insert(roots, real) + end +end + +for entry, levelStack in dig(roots) do + if opts.R or #levelStack > 0 then + if entry.isDirectory then + dirs = dirs + 1 + else + files = files + 1 + end + end + writeEntry(entry, levelStack) +end + +if not opts.C then + writeCount(dirs, files) +end + From de080b28efac9cb1dcde795a3d50f520adb288e5 Mon Sep 17 00:00:00 2001 From: payonel Date: Wed, 19 Jul 2017 22:33:54 -0700 Subject: [PATCH 16/21] Add SHODAN to list of robot names Adds a recognizable AI not on this list, SHODAN from the System Shock games. --- src/main/resources/assets/opencomputers/robot.names | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/assets/opencomputers/robot.names b/src/main/resources/assets/opencomputers/robot.names index 27047dffa..1635f27cc 100644 --- a/src/main/resources/assets/opencomputers/robot.names +++ b/src/main/resources/assets/opencomputers/robot.names @@ -88,6 +88,7 @@ Robby # Forbidden Planet Roomba # Under your couch... wait. Rosie # The Jetsons Shakey # The first general-purpose mobile robot that could reason about its actions. +SHODAN # System Shock Skynet # Terminator Space Core # Portal SpiritedDusty # Contributor From cdc8b2d792845566a13b006281afa7146a5e4795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 22 Jul 2017 14:50:56 +0200 Subject: [PATCH 17/21] Fix for infinite loop in manual, closes #2395. --- .../markdown/segment/BasicTextSegment.scala | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala b/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala index 07ad82e7a..365577fe4 100644 --- a/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala +++ b/src/main/scala/li/cil/oc/client/renderer/markdown/segment/BasicTextSegment.scala @@ -1,7 +1,6 @@ package li.cil.oc.client.renderer.markdown.segment -import li.cil.oc.client.renderer.markdown.Document -import li.cil.oc.client.renderer.markdown.MarkupFormat +import li.cil.oc.client.renderer.markdown.{Document, MarkupFormat} import net.minecraft.client.gui.FontRenderer trait BasicTextSegment extends Segment { @@ -58,11 +57,21 @@ trait BasicTextSegment extends Segment { while (pos < s.length) { pos += 1 val width = stringWidth(s.take(pos), renderer) - if (width >= maxWidth) { - if (lastBreak > 0 || fullWidth <= maxLineWidth || s.exists(breaks.contains)) - if (maxWidth == maxLineWidth && fullWidth == maxLineWidth && !s.exists(breaks.contains)) return s.length - else return lastBreak + 1 - else return pos - 1 + val exceedsLineLength = width >= maxWidth + if (exceedsLineLength) { + val mayUseFullLine = maxWidth == maxLineWidth + val canFitInLine = fullWidth <= maxLineWidth + val matchesFullLine = fullWidth == maxLineWidth + if (lastBreak >= 0) { + return lastBreak + 1 // Can do a soft split. + } + if (mayUseFullLine && matchesFullLine) { + return s.length // Special case for exact match. + } + if (canFitInLine && !mayUseFullLine) { + return 0 // Wrap line, use next line. + } + return pos - 1 // Gotta split hard. } if (pos < s.length && breaks.contains(s.charAt(pos))) lastBreak = pos } From 70f8eeb2757b3929e1a8886310272281cfdcd92a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 22 Jul 2017 15:57:03 +0200 Subject: [PATCH 18/21] 1.12 adjustments. --- src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java b/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java index f44353527..e8ac07d70 100644 --- a/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java +++ b/src/main/java/li/cil/oc/api/prefab/ItemStackArrayValue.java @@ -44,7 +44,7 @@ public class ItemStackArrayValue extends AbstractValue { if (this.iteratorIndex >= this.array.length) return null; int index = this.iteratorIndex++; - if (this.array[index] == null)//TODO 1.11 change to ItemStack.EMPTY? + if (this.array[index] == null || this.array[index].isEmpty()) return new Object[]{ emptyMap }; return new Object[]{ this.array[index] != null ? this.array[index] : emptyMap }; } @@ -77,9 +77,9 @@ public class ItemStackArrayValue extends AbstractValue { for (int i = 0; i < tagList.tagCount(); ++i){ NBTTagCompound el = tagList.getCompoundTagAt(i); if (el.hasNoTags()) - this.array[i] = null;//TODO 1.11 change to ItemStack.EMPTY? + this.array[i] = ItemStack.EMPTY; else - this.array[i] = ItemStack.loadItemStackFromNBT(el); + this.array[i] = new ItemStack(el); } } else { this.array = null; From 67895541c69147608d1df6a1fb579f5253a718c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 22 Jul 2017 18:15:16 +0200 Subject: [PATCH 19/21] Fix adapter bottom texture. --- .../resources/assets/opencomputers/models/block/adapter.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/opencomputers/models/block/adapter.json b/src/main/resources/assets/opencomputers/models/block/adapter.json index a20ea7f23..a535714b8 100644 --- a/src/main/resources/assets/opencomputers/models/block/adapter.json +++ b/src/main/resources/assets/opencomputers/models/block/adapter.json @@ -1,7 +1,7 @@ { "parent": "block/cube_bottom_top", "textures": { - "bottom": "opencomputers:blocks/generic_top", + "bottom": "opencomputers:blocks/adapter_top", "top": "opencomputers:blocks/adapter_top", "side": "opencomputers:blocks/adapter_side" } From f00c2dd6a26295ff0cfdd4ffdb2d6330e3059d9a Mon Sep 17 00:00:00 2001 From: payonel Date: Wed, 19 Jul 2017 22:37:04 -0700 Subject: [PATCH 20/21] simplify tty check slightly and add comment that tty should not be used directly by user code maybe i should just move tty to /lib/core --- .../assets/opencomputers/loot/openos/lib/tty.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua b/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua index b860dbb77..131975a8a 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/lib/tty.lua @@ -261,12 +261,12 @@ function tty.internal.build_vertical_reader() } end --- read n bytes, n is unused -function tty.read(self, handler, cursor) +-- PLEASE do not use this method directly, use io.read or tty.read +function tty.read(_, handler, cursor) checkArg(1, handler, "table", "number") checkArg(2, cursor, "table", "nil") - if not io.stdin.tty or io.stdin.stream ~= self then + if not io.stdin.tty then return io.stdin:readLine(false) end @@ -320,8 +320,9 @@ function tty.setCursor(x, y) window.x, window.y = x, y end -function tty.write(self, value) - if not io.stdout.tty or io.stdout.stream ~= self then +-- PLEASE do not use this method directly, use io.write or term.write +function tty.write(_, value) + if not io.stdout.tty then return io.write(value) end local gpu = tty.gpu() From 2a178f6d41395fc564d1c4e0ef17d264f9eae5b1 Mon Sep 17 00:00:00 2001 From: payonel Date: Tue, 8 Aug 2017 18:44:32 -0700 Subject: [PATCH 21/21] fix quiet /bin/source quiet mode in /bin/source was a mess -- making .shrc scripts not able to print. Also, a lot of the /bin/sh arg parsing code has traditionally been over complicated. cleaned that up as well thanks to old code that expected strings in the args having been removed some time ago --- .../assets/opencomputers/loot/openos/bin/sh.lua | 10 +++------- .../assets/opencomputers/loot/openos/bin/source.lua | 5 +---- .../assets/opencomputers/loot/openos/etc/profile.lua | 2 +- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua index f5fde9c62..01f627e4c 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/sh.lua @@ -4,14 +4,10 @@ local tty = require("tty") local text = require("text") local sh = require("sh") -local input = table.pack(...) -local args = shell.parse(select(3,table.unpack(input))) -if input[2] then - table.insert(args, 1, input[2]) -end +local args, options = shell.parse(...) shell.prime() -local update_gpu = io.output().tty +local update_gpu = io.output().tty and not options.c local needs_profile = io.input().tty local input_handler = {hint = sh.hintHandler} @@ -38,7 +34,7 @@ if #args == 0 then io.stderr:write((reason and tostring(reason) or "unknown error") .. "\n") end end - elseif not interactive then + else return -- eof end if update_gpu and tty.getCursor() > 1 then diff --git a/src/main/resources/assets/opencomputers/loot/openos/bin/source.lua b/src/main/resources/assets/opencomputers/loot/openos/bin/source.lua index 2b1cc20ec..8286ad1ed 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/bin/source.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/bin/source.lua @@ -24,9 +24,6 @@ local source_data = process.list[source_proc].data source_data.aliases = current_data.aliases -- hacks to propogate sub shell env changes source_data.vars = current_data.vars source_data.io[0] = file -- set stdin to the file -if options.q then - source_data.io[1] = {tty=false,write=function()end} -- set stdin to the file -end -process.internal.continue(source_proc) +process.internal.continue(source_proc, "-c") file:close() -- should have closed when the process closed, but just to be sure diff --git a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua index 9fc3df6d1..76c7ecca3 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua @@ -40,5 +40,5 @@ shell.setWorkingDirectory(os.getenv("HOME")) local home_shrc = shell.resolve(".shrc") if fs.exists(home_shrc) then - loadfile(shell.resolve("source", "lua"))(home_shrc, "-q") + loadfile(shell.resolve("source", "lua"))(home_shrc) end