[MECH] RedstoneChips 0.97 - Integrated circuits plugin [1.5.1-R0.2]

Discussion in 'Archived: Plugin Releases' started by eisental, Jan 19, 2011.

  1. Offline

    eisental

    RedstoneChips 0.97 / BasicCircuits 0.97 / SensorLibrary 0.34
    (Last update on April 30th, 2013, cb 1.5.1-R0.2)


    [​IMG]

    Features:
    • Build chips with any number of input and output pins, from compact 2 block chips up to whatever you can imagine.
    • Choose from over 50 different chip types and several 3rd party chip libraries.
    • Most chip types can work with a wide or infinte range of i/o configurations. Sign arguments allow you to customize chip behavior.
    • Chips can communicate through redstone, or directly by touching each other. Some chip types can also communicate over wireless channels.
    • Chips can be built in almost any imaginable structure allowing very compact circuits.
    • Debug and maintain large projects using various tools and commands.
    [​IMG]

    [cake] Help me spend more time working on RedstoneChips. Please donate

    Circuit libraries made by other people:
    Changelog (open)

    RedstoneChips 0.97 (Apr 30th, 2013)
    • Fixed the saving bug on cb 1.5.1.
    • Added an option to disable update checking.
    BasicCircuits 0.96 (Apr 30th, 2013)
    • pixel: Added a maximum distance value preference to prevent lags and server crashes. The max can be changed using/rcprefs pixel.maxDistance x and defaults to 7.
    • sram: Fixed a problem with anonymous memory.
    SensorLibrary 0.34 (Dec 1st, 2012)
    • daytime: Fixed daytime offset bug.



    Full changelogs and source code @ github.com:
    RedstoneChips [gunpowder] BasicCircuits [gunpowder] SensorLibrary
     
    DoomLord, Shamebot, Vecht and 6 others like this.
  2. Offline

    Badzilla

    Not sure why you needed to rename anything. That I know of, when he puts a new build out, you need to get both of them. I like the build number in the name so I don't have to guess at which build I am running.

    You also didn't give much detail, like which builds of each caused the problem.
     
  3. Offline

    eisental

    Nice, I'm glad to finally hear it's used for minecarts. As for the pisoregister, the right order would be: Adjust your data levers, turn lever on line 4 on (the shift/write pin) to write the inputs to the register, turn it off to go to shift mode and then click the button as many times as you like to shift. The problem is that apparently it will trigger the shift when the clock pin goes high AND when it goes low. It's now fixed and i've also added debug messages to make everything clear. So I would say, try again when the new version is out.
     
  4. Offline

    Badzilla

    Maybe I didn't word it well, but I did have lever at line 4 high for the load.

    I look forward to the new release.

    Since so many people have problems initially getting started with this plugin, I thought maybe I would add some schematics to the Wiki and would like your input on what to use for each block. IE C = Circuit block which default is sandstone. Maybe O for output. Etc. I just wanted to have an accepted format to stick to.
     
  5. Offline

    littledude7644

    How far can the Transmitters transmit and receive.
     
  6. Offline

    joshr1001

    This probably has some conflicts with the ControllerBlock plugin.
     
  7. Offline

    pudquick

    Well, the reason that they did Perlcode I think is that it's actually not too bad, coding-wise - it's a very very simplistic simple stack interpreter. But more importantly, it's a limited interpreter - it's not full-fledged access to a programming language running on the underlying server, which could potentially be a security issue.

    And they made it single character operators, which also helps interpreter-wise, because you just do the following (in pseudo code):

    Run while characters remain:
    Get next character, see if it's valid operator​
    Valid?:​
    Check args required for operator (always a set number)​
    Required args?:​
    Get that # many args, see if valid values (registers)​
    Valid?:​
    Run operation, return result to stack​
    Not valid?:​
    Die in flames.​
    None required?:​
    Run operation, return result to stack​
    Not valid?:​
    Die in flames.​

    All you have to implement is the basic operators and register inputs/outputs, then the ability to push/pull from the stack.

    Something you'd add outside that loop would be the ':' divider that Perlcode has for creating subroutines, so split the string by ':', run the code in the first few routines as the "main" loop, the rest just store for interpreting as subroutines.

    You want compact language if the only text entry method in Minecraft is through signs.

    Although ... you could also do it through /slash commands :) Which would honestly be even cooler. And just have a single sign with the name of the storage for the text/script, with destruction of the sign = erase script storage. Like:

    • Make a sign with some word like circuitscript in line 1, then line 2 = name of storage, unique
    • Then /slash command like /start-editing scriptname
    • Then /rc-append <new text>
    • or /rc-del <line number>
    • or /rc-print for seeing the whole thing, with line numbers.
    • /rc-save when you're done editing
    Maybe right-click the sign to reload the new script or something.

    You could definitely improve on the way that Craftbook did it :)

     
  8. Offline

    Xstasy

    Please update the wiki with info on how to use the synth.
     
  9. Offline

    Badzilla

    eisental:

    Another problem and I probably just didn't configure it correctly.

    When I right click on the sign I get a message.

    Bad number of outputs. Expecting 2.0.
    decoder was not activated.

    S = Sign, C = Sandstone circuit, I = Iron, B = Button
    R = Redstone, L = Lever, G = Gold, T = Redstone torch on a stone block.
    x = space, it keeps changing my spacing.

    xxxxxxxS
    T R L G C
    xxxxxxxC I R L
    T R L G C
    xxxxxxxC
    T R L G C
    xxxxxxxC I R L
    T R L G C
     
  10. Offline

    joshr1001

    Jan 27, 2011 7:51:56 PM org.bukkit.craftbukkit.CraftServer loadPlugins
    SEVERE: org/tal/redstonechips/BitSetCircuit (Is it up to date?)
    java.lang.NoClassDefFoundError: org/tal/redstonechips/BitSetCircuit
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:29)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.tal.basiccircuits.BasicCircuits.onEnable(BasicCircuits.java:56)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:135)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:292)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:175)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:60)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:45)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:153)
    at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:140)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:104)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:177)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    Caused by: java.lang.ClassNotFoundException: org.tal.redstonechips.BitSetCircuit

    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:29)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 23 more

    ?? help? I get this error when i have the BasicCircuits plugin installed.
     
  11. Offline

    Badzilla

    Just guessing but do you maybe not have RedstoneChips loaded?
     
  12. Offline

    Binder News

    That's the same problem I got. Did you rename RedstoneCircuit?
    Also, I can only get the transmitter to activate. nothing else at all.
     
  13. Offline

    mpeychich

    I was wondering if the flip flop had the option for a reset pin. Essentially I want a flip flop with reset option like a series of SR NOR latches. I can make the circuit in normal redstone but it is on the order of 200+ redstone to do. This is for track selection, so unless anyone else other suggestions, a SR NOR like circuit would be appreciated.
     
  14. Offline

    eisental

    synth is not released yet. It was just a teaser [​IMG]
     
  15. Offline

    Binder News

    I tried a lot of other gates as well. It displayed an error when I got the gate wrong, but nothing when I got it right.
     
  16. Offline

    eisental

    I would really appreciate it. I'm actually working on screenshots for each circuit as we speak. Yeah, I would use C for chip block O for output, I for input etc. the way you did it, unless you can make an image schematics which would be even nicer but a lot of work. Anyway as I said 0.7 makes a lot of changes so don't start yet...
    Thanks for the help
    --- merged: Jan 28, 2011 1:45 AM ---
    Thanks. Using /slash commands was how I thought of doing it. I think it would be nice if the player needs to point towards an interface block (like the output sign in print) and then enter code line by line. Of course I don't have any intention to expose the Bukkit api, whatever kind of scripting its going to be. I wish I had the opportunity to try Perlstone. Maybe I can just port it, i think its GPL.
     
  17. Offline

    Xstasy

    Got an ETA on 0.7/synth? Would love to (ab)use it.
     
  18. Offline

    eisental

    Added to the todo list.
    --- merged: Jan 28, 2011 1:51 AM ---
    Hopefully a few hours ago...
    --- merged: Jan 28, 2011 1:52 AM ---
    Did you add levers to every output block? It doesn't say anything but won't activate the circuit either.
    Fixed in new ver.
    --- merged: Jan 28, 2011 1:56 AM ---
    Decoder should have a write pin. It's seeing 1 write pin and 1 data pin and hence expects 2 outputs.
     
  19. Offline

    Binder News

    Did you add levers to every output block? It doesn't say anything but won't activate the circuit either.
    Fixed in new ver.
    --- merged: Jan 28, 2011 1:56 AM ---

    Thanks, that fixed it! Hope you upload the new version soon.
     
  20. Offline

    eisental

    Ok, took about a whole day, but I finally finished updating everything.
    The new version allows you to build vertical/bent/circular circuits or whatever structure you can imagine. Check the how-to page on the website for info. I'm not sure if its possible to understand what I've written there but give it a try [​IMG]. If anybody wants to help make the how-to page better let me know.

    Also, since I've moved the circuit docs the wiki is now out of date, so I will delete the old pages tomorrow. The only problem with the new scheme of things is that I'm the only one who can edit the docs. I thought about linking the wiki to the new website somehow so people can make their own contribution but I'm not sure what would be the best way. Again, if you have any ideas, let me know.
     
  21. Offline

    Xstasy

    Wanted: Synth Youtube Video?
    Why dont you just set up a normal wiki?
     
  22. Offline

    pudquick

    It's GPL 3. They're also refactoring for Bukkit: https://github.com/sk89q/craftbook/tree/refactor

    Plus there are semi-functional patched versions of hMod now, if you wanted to try it out in the meantime.
     
  23. Offline

    raz235

    great update!
    could you update the counter page on wiki so i can see how to set the sign for min max and direction?
    thanks in advance!
     
  24. Offline

    eisental

    Thanks, I forgot about the counter (too many changes...). I'll update it later but it's pretty simple.
    There are 3 options:

    1.
    counter
    [max]

    2.
    counter
    [min] [max]

    3.
    counter
    [min] [max] [direction]

    min and max are obviously numbers and direction can be 'up' 'down' or 'updown'
     
  25. Offline

    L2USSR

    Love this plugin. Tho I do got a problem with the pulse chip. Getting this error:

    [WARNING] Failed to handle packet: java.util.ConcurrentModificationException
    java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
    at java.util.HashMap$KeyIterator.next(Unknown Source)
    at java.util.AbstractCollection.toArray(Unknown Source)
    at java.util.ArrayList.<init>(Unknown Source)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:39)
    at net.minecraft.server.BlockRedstoneWire.b(BlockRedstoneWire.java:270)
    at net.minecraft.server.WorldServer.l(WorldServer.java:180)
    at net.minecraft.server.WorldServer.h(WorldServer.java:159)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:45)
    at net.minecraft.server.BlockRedstoneWire.b(BlockRedstoneWire.java:270)
    at net.minecraft.server.WorldServer.l(WorldServer.java:180)
    at net.minecraft.server.WorldServer.h(WorldServer.java:158)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:45)
    at net.minecraft.server.BlockRedstoneWire.b(BlockRedstoneWire.java:270)
    at net.minecraft.server.WorldServer.l(WorldServer.java:180)
    at net.minecraft.server.WorldServer.h(WorldServer.java:156)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:45)
    at net.minecraft.server.BlockRedstoneWire.b(BlockRedstoneWire.java:270)
    at net.minecraft.server.WorldServer.l(WorldServer.java:180)
    at net.minecraft.server.WorldServer.h(WorldServer.java:156)
    at net.minecraft.server.BlockButton.a(BlockButton.java:180)
    at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:118)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:447)
    at net.minecraft.server.Packet15Place.a(SourceFile:57)
    at net.minecraft.server.NetworkManager.a(SourceFile:232)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:65)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:104)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:261)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:197)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)


    It works sometimes but eventually it always throws that error. Any ideas?
     
  26. Offline

    eisental

    It's another timing issue. I check for this error in the clock circuit but forgot to do so for pulse. What do you put in your pulse argument? Did you run more than one pulse circuit at the same time?

    EDIT: on second look i see this occured in the server thread. Is that the full error message?
     
  27. Offline

    Badzilla

    I just tried 0.7 and got this message in the console.

    2011-01-28 14:57:24 [INFO] RedstoneChips: 0 active circuits
    Jan 28, 2011 2:57:24 PM org.bukkit.craftbukkit.CraftServer loadPlugins
    SEVERE: BLOCK_BURN (Is it up to date?)
    java.lang.NoSuchFieldError: BLOCK_BURN
    at org.tal.redstonechips.RedstoneChips.onEnable(RedstoneChips.java:112)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:135)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:285)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:175)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:60)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:45)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:153)
    at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:140)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:104)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:177)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
     
  28. Offline

    eisental

    I think your craftbukkit is outdated. The new version only works on build #161 or above.
     
  29. Offline

    Badzilla

    Got it. Thanks. Dang these builds come out fast!
    --- merged: Jan 28, 2011 9:44 PM ---
    I have a counter configured and it activated with 2 inputs and 4 outputs.
    The thing is when I push the button to add counts it counts from 1 to 4 then back to 0.
     
  30. Offline

    eisental

    Oh my, you should become the official RedstoneChips bug finder:cool:

    I uploaded BasicCircuits-0.71 to solve this issue and added a reset pin mode to the flipflop (check the changelog). Still need to update the docs.
     
  31. Offline

    Badzilla

    Well, I use to build ttl logic boards for my TRS-80 Radio shack computer and my Commodore 64. I loved playing with ttl logic chips. So, when I found your plugin I decided to try out each one to see how it worked and have been building each chip type in a construction area that I built. I have no idea what I would even use some of them for but just wanted to learn about them and have a working copy of the circuits.
     

Share This Page