From bff1b2310a1fd730150649aebf18e5936955f721 Mon Sep 17 00:00:00 2001 From: payonel Date: Sun, 2 Jun 2019 01:54:03 -0700 Subject: [PATCH 1/4] fix alias reset, the clear call was not needed --- .../resources/assets/opencomputers/loot/openos/etc/profile.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 32a945d3b..52e054734 100644 --- a/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua +++ b/src/main/resources/assets/opencomputers/loot/openos/etc/profile.lua @@ -26,7 +26,7 @@ shell.setAlias("..", "cd ..") shell.setAlias("df", "df -h") shell.setAlias("grep", "grep --color") 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("HISTSIZE", "10") From 88d4bcaa46268b5eea1eeb309233494cdc9f6e92 Mon Sep 17 00:00:00 2001 From: payonel Date: Sun, 2 Jun 2019 01:55:44 -0700 Subject: [PATCH 2/4] bind(false) doesn't need to sleep > 0, there is still a balanced context cost with this change, and each bind() action behaves roughly the same from significant empirical testing closes #3062 --- src/main/scala/li/cil/oc/server/component/GraphicsCard.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala b/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala index 90824d085..b25316e19 100644 --- a/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala +++ b/src/main/scala/li/cil/oc/server/component/GraphicsCard.scala @@ -100,7 +100,7 @@ class GraphicsCard(val tier: Int) extends prefab.ManagedEnvironment with DeviceI s.setForegroundColor(0xFFFFFF) 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) }) case _ => result(Unit, "not a screen") From 915a215cd7db3ce66d48221ad6b09ff8170dfc88 Mon Sep 17 00:00:00 2001 From: payonel Date: Tue, 11 Jun 2019 03:22:40 -0700 Subject: [PATCH 3/4] use https for deps --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 67a584f30..257789d86 100644 --- a/build.gradle +++ b/build.gradle @@ -75,7 +75,7 @@ if (JavaVersion.current().isJava8Compatible()) { repositories { maven { name = "mightypirates" - url = "http://maven.cil.li/" + url = "https://maven.cil.li/" } } From fac5ecbe871164278fe37e46b5a6bf0b1006f255 Mon Sep 17 00:00:00 2001 From: payonel Date: Tue, 11 Jun 2019 03:30:09 -0700 Subject: [PATCH 4/4] allow signals of tables of simple key value types --- .../li/cil/oc/server/machine/Machine.scala | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/machine/Machine.scala b/src/main/scala/li/cil/oc/server/machine/Machine.scala index cef8f7f12..62ea1e770 100644 --- a/src/main/scala/li/cil/oc/server/machine/Machine.scala +++ b/src/main/scala/li/cil/oc/server/machine/Machine.scala @@ -309,6 +309,21 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach } } + 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 = { state.synchronized(state.top match { case Machine.State.Stopped | Machine.State.Stopping => return false @@ -320,19 +335,22 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach else { signals.enqueue(new Machine.Signal(name, args.map { 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: 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: NBTTagCompound => arg - case arg => - OpenComputers.log.warn("Trying to push signal with an unsupported argument of type " + arg.getClass.getName) - null + case arg: java.util.Map[_, _] => { + val convertedMap = new mutable.HashMap[AnyRef, AnyRef] + for ((key, value) <- arg) { + val convertedKey = convertArg(key) + if (convertedKey != null) { + val convertedValue = convertArg(value) + if (convertedValue != null) { + convertedMap += convertedKey -> convertedValue + } + } + } + convertedMap + } + case arg => convertArg(arg) }.toArray[AnyRef])) } }