[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

    eisental

    I was asking about that a few posts above. I was convinced to keep it that way so that the day starts at 0 making a 1bit daytime circuit output 0 when there's light and 1 when it's dark. It could have both options possible with a sign arg if I find a way to squeeze it in somehow.

    Good idea. I just added the reverse case to my todo list - a transmitter that sends to a selected group of bits on a channel. I'll try to code it the other way as well.
     
  3. Offline

    vsTerminus

    Edit: I found a second bug.

    Line 17 of multiplier.java should read
    Code:
    int constant = 1;
    since your docs say that the constant is optional. However, if you don't specify a constant, everything comes out as 0.

    ----------------------

    Maybe I'm the only one who has this problem, but it seems I cannot shut off pixels in my circuits without a full server restart (Not even /reload fixes it).

    Steps to reproduce:

    1. Create a simple clock with a transmitter
    2. Set up one or more pixel receivers that dye some wool
    3. Start the circuit
    4. Break the pixel circuit any way you can think of (rc-break, manually breaking blocks, etc)
    5. Observe as block of wool still changes color with the clock.

    Optionally,
    6. Break the wool block
    7. Replace it with a new one
    8. Observe as the wool begins changing color with the clock without any connected circuit.

    Am I crazy or is this a legitimate bug?


    Edit:

    Code:
    20:00:59 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-544-g6c6c30a-b556jnks (MC: 1.3)
    20:00:59 [INFO] This server is also sporting some funky dev build of Bukkit!
    >plugins
    20:01:00 [INFO] Plugins:
    Netstats,
    FenceStack,
    VoxelSniper,
    MyWarp,
    Essentials,
    Cleaner,
    TimeShift,
    EssentialsTele,
    Yeditor,
    XSigns,
    RedstoneChips,
    GriefAlertR,
    IRCTransport,
    SpeedCircuits,
    HeroicDeath,
    Permissions,
    EssentialsSpawn,
    EssentialsBan,
    MyHome,
    NoCheatPlugin,
    VoxelMore,
    SensorLibrary,
    BasicCircuits
     
  4. Offline

    eisental

    @vsTerminus You are right about the multiplier bug. I haven't noticed it before, thanks... I guess not many people use it without a constant (or at all).
    About the pixel bug, it was reported a few posts above and it's already fixed on the github repository. I will release a new BasicCircuits as soon as I can but I'm a bit too busy this week.
     
  5. Offline

    CyborgOne

    Hi,
    I've got a question. I tried to change a lever state (on -> off) by pressing a button. Is this possible?
    I want to build a Button which opens a door if I press it first time. (normaly the door close after 1-2 seconds, thats what I don't want to happen)
    The door should be opened until i push the button second time.

    sure a lever can do this, but i need this function in more combinations. thats only a simple sample.

    I hope you understand what I would du and someone can help me?
     
  6. Offline

    eisental

    You need a flipflop. Build it with 1 input and 1 output. When you trigger the input (with a button) the output lever will change its state which I guess is what you're looking for.
     
  7. Offline

    CyborgOne

    yea! Perfect! thats what I need!

    Thanks a lot!
     
  8. Offline

    vsTerminus

    @eisental That is good news, thanks :)

    Someone on my server used your plugin to create a digital clock on the side of the main tower. As long as someone is in the game, it displays the current time as reported by my server.
     
  9. Offline

    newyorkdaily

    Hi all, i was wondering how to change the default input/output blocks, like what would the reference be to cobble stone if i wanted to change outputblock from gold to cobblestone in the config file. is there anyway to figure this out? ive tried something like COBBLESTONE_BLOCK as an output and that didnt work then i tried CSTONE_BLOCK cuz i know thats the item refference in a few other plugins, is there anyway to figure the references to block types out?
     
  10. Normally you could check this: http://javadoc.lukegb.com/BukkitJD/org/bukkit/Material.html#enum_constant_detail
    These are the way the materials are listed in code. I write my plugins based on these names.

    If that name doesn't work, you can use the number for it from here http://minecraft-ids.grahamedgecombe.com/
     
  11. Offline

    newyorkdaily

  12. Offline

    gbear605

    could someone upload a mirror, github won't work on my computer
     
  13. Offline

    eisental

    @newyorkdaily What Richard wrote is basically correct but I just wanted to add that the check is not case sensitive - you can use COBBLESTONE but also cobblestone, and you don't have to type in the underscore for it to work - DOUBLE_STEP and doublestep should both work.
    Also, since the last RC version (0.86) you can use specific data values. Type in wood:2 for birch wood and wood:1 for redwood for example. It's also possible to use specific wool colors by writing in wool:<color> - wool:blue, wool:red etc.
     
  14. Offline

    Dashkal

    Sweet, colored wool got it. Thanks!
     
  15. Offline

    Mordenkainen

    Sorry to keep bombarding you with suggestions, but I thought of another one while building the clock.

    It may be useful for the segdriver circuit to have an optional "blank" pin, so if you want to blank the display you can. I couldn't find any way to make the display go back to nothing once the segdriver was hooked up and data had been sent to it.

    Also, a very minor bug, the multiplier circuit appears to identify itself as an Adder when activated:
    info(sender, "Activating adder with " + inBitSetCount + " input set(s) of " + wordlength + " bits each.");

    I thought you mentioned in a previous post that the transmitter had been modified to load the chunk the receiver was in if it was not loaded. Is this still true? I didn't seem to find anything in the code that indicated that, but then again, I'm not quite sure what I would be looking for.

    Morden.
     
  16. What about it doesn't work?
     
  17. Offline

    eisental

    Thanks. I fixed the typo and I'll add a reset pin to the segdriver (I think it was originally planned but slipped my mind).

    About the chunk loading. It's not true :) The only thing that was eventually added was to make sure that once a chunk is loaded with circuits in it the output levers of these circuits are updated to match the current state of the circuits (which could have changed while the chunk was not loaded). A chunk loading circuit of some kind is planned for next BC. You could probably trigger it directly with a transmitter so it should work the way you want.
     
  18. Offline

    Mordenkainen

    I didn't exactly mean a reset pin, more of a blank pin. So If that pin is held high the segdrive ignores other inputs and just outputs nothing.

    This may be what you meant, but I just wanted to clarify.
     
  19. Offline

    Badzilla

    Any news on an update to 561+

    Thanks
     
  20. Offline

    mistapaluza

    So I realize that this plugin has the capability to decrease the footprint of redstone, and I was thinking of how to apply this to a minecart destination selector.
     
  21. Offline

    eisental

    Hi Badzilla, probably by the end of the weekend...

    @mistapaluza Shouldn't be a problem. I don't know how you build your destination selectors but if you have a specific question feel free to ask.
     
  22. Offline

    Mordenkainen

    So figured I would post this to help anyone who is trying to make a clock.

    Here are the calculations required to adjust for the +8hr time shift and to format the hour into 24hr, 12hr, 24hr BCD, and 12hr BCD. (BCD output is suitable to feed right into a pair of segdrivers). All comparisons are made against the raw hour value read from the daytime circuit. Negative numbers must be presented to the adder using two's complement. The adder may complain that the output may overflow, but is fine since you are doing subtraction. This reduces the whole problem to a single adder, 1 to 4 comparators and AND gates, and optionally a router to simplify sending the appropriate number to the adder.

    Using this method, for 12hr BCD, it takes a 4 step process (add 8, subtract 24 if > 24, subtract 12 if > 12, add 6 if > 10) down to a single compare for range and add the appropriate number.

    24Hr:
    <16 = +8
    >15 = +16
    Requires 1 comparator

    12hr:
    <5 = +8
    5 to 16 = -4
    >16 = -16
    Requires 2 comparators and 1 AND gate

    24hr BCD:
    <2 = +8
    2 to 11 = +14
    12 to 15 = +20
    >15 = -16
    Requires 3 comparators and 2 AND gates

    12hr BCD:
    <2 = +8
    2 to 4 = +14
    5 to 13 = -4
    14 to 16 = +2
    >16 = +16
    Requires 4 comparators and 3 AND gates

    Hope this helps someone.

    Morden.
     
  23. Offline

    mistapaluza

    That is exactly my issue, I don't know the exact circuitry for a destination selector. All I get are JPEGs of redstone simulator.
     
  24. Offline

    Mars339

    I always get this error!!!

    2011-03-26 17:40:17 [SEVERE] Could not load plugins\BasicCircuits-beta.jar in pl
    ugins: null
    org.bukkit.plugin.InvalidPluginException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:85)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:129)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:94)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:58)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:187)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:174)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:120)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:227)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoClassDefFoundError: org/tal/redstonechips/circuit/Circuit
    Library
    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:30)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:72)
    ... 8 more
    Caused by: java.lang.ClassNotFoundException: org.tal.redstonechips.circuit.Circu
    itLibrary
    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:30)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 23 more
    2011-03-26 17:40:17 [INFO] [Permissions] version [2.5.2] (Phoenix) was Initializ
    ed.
    2011-03-26 17:40:17 [SEVERE] Could not load plugins\SensorLibrary-beta.jar in pl
    ugins: null
    org.bukkit.plugin.InvalidPluginException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:85)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:129)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:94)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:58)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:187)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:174)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:120)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:227)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoClassDefFoundError: org/tal/redstonechips/circuit/Circuit
    Library
    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:30)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:72)
    ... 8 more
    Caused by: java.lang.ClassNotFoundException: org.tal.redstonechips.circuit.Circu
    itLibrary
    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:30)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 23 more
     
  25. Offline

    Zach Hinchy

    Is there a way to make the pixel circuit only work on wool that's directly touching the interface block? I wanted to make a digital clock but it's impractical if the interface blocks change the color in a 3x3x3 area around the block. it'd have to be impractically huge (each digit 9 wide and 15 tall).
     
  26. Offline

    Dashkal

    Not as of yet, but would you be content with two wool blocks per segment? If so, look at the images in the OP. Pixels were modified to avoid bleed by requiring an unbroken chain of wool to the interface block.
     
  27. Offline

    eisental

    It doesn't need to be 9x15.
    w - wool block, 0 - a different block.
    Code:
    owwo
    woow
    woow
    owwo
    woow
    woow
    owwo
    
    That's 7x4

    Code:
    owo
    wow
    owo
    wow
    owo
    
    This 5x3 also works since the segment don't touch each other but it doesn't look so good.
     
  28. Hi, this is a great plugin... Atleast the idea, apparantly. Everything bound to signs stop working when having SensorLibrary on, i couldnt understand why my circuits wouldnt work then checked the java error and decided to disable it, now everything works. But that's kinda annoying, cause i needed this addon for the time function in the first place heh.
     
  29. Offline

    eisental

    I can't help without a copy of the error message. Of course there shouldn't be a problem running SensorLibrary.

    Did you copy the RedstoneChips-beta.jar to your plugins folder? It seems craftbukkit can't find it and i'm not sure why. If you did, it could help if you wrote which craftbukkit build and RedstoneChips version you're using.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  30. Apparantly works now, after i removed it and actually got a circuit working... I'll write back if it occours again.

    EDIT: Could you perhaps explain how to do the clock? I think i had the point until it said 1 clock expected, but i have no clue where to put it... And im not sure im doing it right, would be nice with some more documentation =)

    EDIT2: Kinda figured it out, i have some issues regarding which ones are outputting... But yeah, a beginners guide would be lovely.
     
  31. Offline

    Mars339

    The redstonechips-beta.jar is in the plugins folder and i have version 0.86.
    But how could i look which build of craftbukkit i have?
    Sorry for the bad english^^
     

Share This Page