Merge branch 'master-MC1.10' into master-MC1.11

# Conflicts:
#	build.gradle
This commit is contained in:
payonel 2019-06-11 03:39:21 -07:00
commit 1f310e2d8c
4 changed files with 32 additions and 14 deletions

View File

@ -67,7 +67,7 @@ minecraft {
} }
repositories { repositories {
maven { url "http://maven.cil.li/" } maven { url "https://maven.cil.li/" }
} }
configurations { configurations {

View File

@ -26,7 +26,7 @@ shell.setAlias("..", "cd ..")
shell.setAlias("df", "df -h") shell.setAlias("df", "df -h")
shell.setAlias("grep", "grep --color") shell.setAlias("grep", "grep --color")
shell.setAlias("more", "less --noback") shell.setAlias("more", "less --noback")
shell.setAlias("reset", "clear; resolution `cat /dev/components/by-type/gpu/0/maxResolution`") shell.setAlias("reset", "resolution `cat /dev/components/by-type/gpu/0/maxResolution`")
os.setenv("EDITOR", "/bin/edit") os.setenv("EDITOR", "/bin/edit")
os.setenv("HISTSIZE", "10") os.setenv("HISTSIZE", "10")

View File

@ -101,7 +101,7 @@ class GraphicsCard(val tier: Int) extends AbstractManagedEnvironment with Device
s.setForegroundColor(0xFFFFFF) s.setForegroundColor(0xFFFFFF)
s.setBackgroundColor(0x000000) s.setBackgroundColor(0x000000)
} }
else context.pause(0.2) // To discourage outputting "in realtime" to multiple screens using one GPU. else context.pause(0) // To discourage outputting "in realtime" to multiple screens using one GPU.
result(true) result(true)
}) })
case _ => result(Unit, "not a screen") case _ => result(Unit, "not a screen")

View File

@ -311,6 +311,21 @@ class Machine(val host: MachineHost) extends AbstractManagedEnvironment with mac
} }
} }
def convertArg(param: Any): AnyRef = {
param match {
case arg: java.lang.Boolean => arg
case arg: java.lang.Character => Double.box(arg.toDouble)
case arg: java.lang.Long => arg
case arg: java.lang.Number => Double.box(arg.doubleValue)
case arg: java.lang.String => arg
case arg: Array[Byte] => arg
case arg: NBTTagCompound => arg
case arg =>
OpenComputers.log.warn("Trying to push signal with an unsupported argument of type " + arg.getClass.getName)
null
}
}
override def signal(name: String, args: AnyRef*): Boolean = { override def signal(name: String, args: AnyRef*): Boolean = {
state.synchronized(state.top match { state.synchronized(state.top match {
case Machine.State.Stopped | Machine.State.Stopping => return false case Machine.State.Stopped | Machine.State.Stopping => return false
@ -322,19 +337,22 @@ class Machine(val host: MachineHost) extends AbstractManagedEnvironment with mac
else { else {
signals.enqueue(new Machine.Signal(name, args.map { signals.enqueue(new Machine.Signal(name, args.map {
case null | Unit | None => null case null | Unit | None => null
case arg: java.lang.Boolean => arg
case arg: java.lang.Character => Double.box(arg.toDouble)
case arg: java.lang.Long => arg
case arg: java.lang.Number => Double.box(arg.doubleValue)
case arg: java.lang.String => arg
case arg: Array[Byte] => arg
case arg: Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg case arg: Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg
case arg: mutable.Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg.toMap case arg: mutable.Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg.toMap
case arg: java.util.Map[_, _] if arg.isEmpty || arg.head._1.isInstanceOf[String] && arg.head._2.isInstanceOf[String] => arg.toMap case arg: java.util.Map[_, _] => {
case arg: NBTTagCompound => arg val convertedMap = new mutable.HashMap[AnyRef, AnyRef]
case arg => for ((key, value) <- arg) {
OpenComputers.log.warn("Trying to push signal with an unsupported argument of type " + arg.getClass.getName) val convertedKey = convertArg(key)
null if (convertedKey != null) {
val convertedValue = convertArg(value)
if (convertedValue != null) {
convertedMap += convertedKey -> convertedValue
}
}
}
convertedMap
}
case arg => convertArg(arg)
}.toArray[AnyRef])) }.toArray[AnyRef]))
} }
} }