[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

    Pasukaru

    @treve - Yes it is the limit, as the outputs will exceed the integer max value.
    You will have to split it into multiple SRAMs. And - even if eisental changes it to a long - the maximum will be 63 data pins...

    I had the same problem with my SRAMs for the rubiks cube - I think it was 60 Inputs/Outputs per SRAM.
     
  3. Offline

    eisental

    @treve who said it doesn't work with host names? dyndns address or any other should work.
     
  4. Offline

    treve

    doesnt look good, thanks for info pasukaru, but still, i dont get more then 32, at least 60 would be something no? maybe its possible to change that? :p
    i think i remember problems with dyndns,or its maybe that the name doesnt fit the sign :p its long time ago i tried it
     
  5. Probably doesn't fit on the sign considering you can only have 15 characters per line.
     
  6. Offline

    treve

    think it was that indeed.
    think i will decode the sram data and then encode it as workaround
    @eisental: it is possible to have more displays in one? like a 1x1 (with alot pixels) and in that a 100x56 , all on the same wool

    Other bug report: when i destory the switches on the inputs of transmitters, and replace them with other, and change state (color) it wont recognize the new input data and keep working with the old :s even when its not there (when it was 1010, and it is 1111 now, it keeps sending 1010)

    how to build a clock (on request) and been looked at here before:
    make daytime chip, connect bintobcd chip on it, and from there on, split youre 2 numbers and connect that to the input of a segdriver.(4data inputs from bcd chip and 1 clock / 7 outputs for 7 segments)
    if you name youre display correct (top seg a, etc, see google) the hour / min / sec from daytime chip should appear on the dislpay. for color, add transmitters with color (segdriver output)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  7. Offline

    EvHub

    I love your plugin. It really has helped me do things with Redstone I never could have before. I just have one problem/request. I switch between worlds a lot and would really appreciate it if there could be multi-world circuit data storage. I hope that is possible. If not, I understand and will still continue to use this great plugin. Thanks.
     
  8. Offline

    Mordenkainen

    FYI:

    Craftbukkit build 766 seems to solve the issue of levers on chips breaking.

    But, with both 740 and 766 I am having a problem with print chips no longer updating their text. Not sure if there is a pattern, but they seem to work fine for a while, then suddenly stop. rcinfo shows that the chip knows what it should be displaying, but the sign does not update. Resetting the chip does not seem to solve it, but breaking the sign, replacing it, then re-activating the chip does.

    Morden.

    Do you mean a chip file per world?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  9. Offline

    eisental

    If you do mean a chip file per world then that's already planned although it would be a bit difficult to implement so I'm not sure when exactly. Are you switching worlds manually or is there a plugin for that?

    @Mordenkainen that's great news. I think I also saw something on my server with the print but /rcreset did solve it. I'll try to find the problem. Rejoining doesn't solve it right?
     
  10. Offline

    QQCucumber

    Redstone Chips throws a huge hissy fit when I remove a world it has chips in.

    Massive error log here: http://pastebin.com/sJV439VF

    A chip file per world would be nice.. but in the mean time, do you think you could make it simply not try to load chips for a world that isn't active?
     
  11. Offline

    Mordenkainen

    @eisental

    Neither rejoining, nor restarting the server solve it.

    Morden.
     
  12. Offline

    eisental

    So it started with 740 or before that? Most likely a new bukkit issue but I will try to find the problem later.

    @QQCucumber Yes currently RC expects all worlds with chips on them to be loaded by the time all plugins finished initializing. I'll see if I can ignore missing worlds. Is there currently a bukkit plugin for loading worlds on demand? I mean one where you can set them not to load on startup.
     
  13. Offline

    QQCucumber

    Multiverse is the plugin of choice. I'm new to it so I'm not sure if it can 'load on demand' in the way you want. You can, however, create new worlds while the server is still up as well as remove them.

    What happened to me is one of the worlds had a chunk error and I wanted to bring it offline to scan it with Chunkster. Having never done this before, I just shut down the server, renamed the world directory, and started it back up. The only hitch I ran into doing this was RedstoneChips.
     
  14. Offline

    treve

    Morden, some time ago you said something about creating a pc tool to scan images and convert them to display. i dont know if you plan to go on with that? but i would really like that! almost as much as rc itself :) But the thing is, if you would go on with it, where are you going to start? where is pixel 0 and how would you read? like pixel 1 at top left corner? and read from left to right? then start again/continue on left corner second row etc? because i would need to know that before i can go on finishing my message board, cause i need both on the same display, there is no rush for the tool, but i want to finish the message board function of the display, can't do it if i dont know where to place what pixel :( most logic would be top left (altough i was so stupid to use left bottom, but its just 1 letter so not that much to change) (not pm cause i think it would be usefull for everyone who makes a displaything).

    also, is it possible with the print chip to simply change the channel name of a transmitter coresponding to text that was send to it? and then transmitter has to reactivate/reset and broadcast on new channel etc etc? if yes, can some 1 please show it to me how? i cant get it to work :'( to stupid for that :( but it would save me alot of chunks :p
     
  15. Offline

    Mordenkainen

    @eisental

    Istarted seeing it around the time i loaded 740, but it may have been an issue with earlier builds as well. I did not see it with the first 1.5 server, which I think was 716?

    @treve
    I still plan on making the pc tool, but want to finish my current project first. I also think I will use it as my java learning experiance so it may take a bit.

    In any case, the way I envision the tool working is like so:
    You tell the tool if you want monochrome or color output, the file name of the image, the filename of the sram file, and the number of output bits on the sram

    The tool will then calculate the number of pixels that can be handled at once for the sram size specified. For example, a 32 bit output sram and a monochrome image could handle 32 pixels at once, while a 32 bit sram and a color image can only handle 8. I will be using the monochrome example for the rest of the explanation, but it will work the same for color, just a different number of pixels.

    Then the tool will scan across the image, starting at the top left, and convert a 32 pixel vertical stripe into sram data as a single sram address, it will then go to the next column and do the same, until it reaches the right side of the image. It will then go 32 pixels down, and repeat the scan, left to right, until the entire image has been converted.

    So as an example, lets assume you have a 64 x 128 pixel monochrome image, and 32 outputs on your sram. The sram data file will be 256 addresses, addresses 0-127 will contain the first 32 rows of data, 128-255 will contain the next 32 rows.

    I know that doesn't explain it well, but I'm not sure how to explain it. Basically, it will break the image up into stripes.
     
  16. Offline

    treve

    i would have to see it how to send actual color etc, it will depend on the tool i guess, but the main thing i needed to know was how it would scan, top left is exelent info, i can rebuild my display and rename the signs i have so far :) but display is/was buging, maybe it will be fixed with a new jacket on :D also, i didnt like my segents, so i can correct them (make smaller letters as well)
    take youre time lol, i have more then a handfull on my battleshipgame and message board and compile the two. no need to add thirth option yet (with the image tool)
    add player name: (enter youre name)
    add player picture: (add youre picture using pc tool (youre pc tool))
    start game, good luck.
    player X won: XX turns needed to win from player Y.
    show winner picture. (winners face)
    but it will request to much bits or channels to send that with iptransmitters :p
     
  17. Offline

    Shamebot

    Had issues with the print too, rcdebug showing the right text, but the sign had a huge delay.
    But it was a while ago, I didn't try it again since then, I thought it was due to my laggy local server.
    @eisental I've seen your workaround with the scheduler, maybe send a packet130 instead?
     
  18. Offline

    eisental

    I really try not to use any craftbukkit methods. I'm still compiling only against bukkit. Also the question would be to whom should I send the packet130. All players in the world? players in a certain radius?
    Would be nicer to find the cause of the problem in craftbukkit and fix it there.
     
  19. Offline

    Shamebot

    Yeah and since rejoining doesn't work it probably won't solve the problem.
     
  20. Offline

    eisental

    Yes, I was just going to point that out... If you have any ideas do let me know :)

    EDIT: This might be the cause for the new behavior.
     
  21. Offline

    Shamebot

    The commit is from 28.4 so if it's responsible the issue should occur since RB 739, which comforms to
    Mordenkainen's assumption that it occured with RB 740.
    But I can't see any changes except the event handling, which shouln't cause any trouble, should it?
    And the method looks rather like it's handling incoming packets.
    Since the fact that rejoining doesn't help indicates the server isn't sending the packets on its own, did you check whether the text gets applied to the sign?
     
  22. Offline

    brad95411

    so I'm having a slight problem with my iptransmitter, I get this error, any advice?
    CODE:
    19:01:20 [SEVERE] Could not pass event PLAYER_INTERACT to RedstoneChips
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
    at org.tal.basiccircuits.iptransmitter.init(iptransmitter.java:48)
    at org.tal.redstonechips.circuit.Circuit.initCircuit(Circuit.java:131)
    at org.tal.redstonechips.CircuitManager.activateCircuit(CircuitManager.java:187)
    at org.tal.redstonechips.CircuitManager.checkForCircuit(CircuitManager.java:183)
    at org.tal.redstonechips.RedstoneChips$4.onPlayerInteract(RedstoneChips.java:203)
    at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:254)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:257)
    at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:162)
    at net.minecraft.server.ItemInWorldManager.dig(ItemInWorldManager.java:64)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:433)
    at net.minecraft.server.Packet14BlockDig.a(SourceFile:42)
    at net.minecraft.server.NetworkManager.a(NetworkManager.java:195)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)

    Thanks
    Brad95411
     
  23. Offline

    eisental

    @Shamebot you might be right. I didn't check anything yet. I only saw this happen once. Tomorrow I'll try to get to it.

    @brad95411 Try setting your iptransmitter.ports preference to a range in format of x..y. For ex.
    Code:
    /rcprefs iptransmitter.ports 20000..25999
    I think that's the problem. Did you change the default preference value to just 1 number? It seems like a bug with the configuration file parsing that should be fixed. Thanks.
     
  24. Offline

    EvHub

    @Mordenkainen and @eisental

    Yes, I do mean a chip file per world. And if that is already planned, then great! I can't wait till you finish it. Thank you.
     
  25. Offline

    Mordenkainen

    @eisental

    I would have PM'd you but can't attach files to PM's.
    Attached is another example of a broken counter. Set the upper levers to the number you want it to count to and flip the lever.

    The counter counts to the number, resets, then a dregister latches the counters value, which should always be 0.
    Here are sample results for some numbers:
    1 - Latch set to 1, Counter output 0, counter value 0
    2 - Latch set to 2, Counter output 0, counter value 0
    3 - Latch set to 1, Counter output 2, counter value 0
    4 - Latch set to 4, Counter output 0, counter value 0
    5 - Latch set to 1, Counter output 4, counter value 0
    6 - Latch set to 2, Counter output 4, counter value 0
    7 - Latch set to 1, Counter output 6, counter value 0
    8 - Latch set to 8, Counter output 0, counter value 0
    9 - Latch set to 1, Counter output 8, counter value 0
    10 - Latch set to 2, Counter output 8, counter value 0
    11 - Latch set to 1, Counter output 10, counter value 0
    12 - Latch set to 4, Counter output 8, counter value 0
    13 - Latch set to 1, Counter output 12, counter value 0
    14 - Latch set to 2, Counter output 12, counter value 0
    15 - Latch set to 1, Counter output 14, counter value 0
    16 - Latch set to 16, Counter output 0, counter value 0
    32 - Latch set to 32, Counter output 0, counter value 0
    64 - Latch set to 64, Counter output 0, counter value 0
    128 - Latch set to 128, Counter output 0, counter value 0

    The results are always the same.

    I notice that at the major boundaries (1, 2, 4, 8, 16, 32, etc) the counter resets correctly , but the latch should be 0 instead of the counters pre-reset value.

    For all other numbers, the counter output bits value, and the value in the dregister, add up to the number the counter was reset at!

    In all cases where the counters output bits are a non-zero value, the count value of the counter is 0, so the outputs don't match the value, and you can see it in rcinfo.

    If you increment a counter that has non-zero output bits, the outputs go to 1, skipping 0, which makes sense as the count value is 0.

    Manually resetting the counter works, and everything works if you change the pulse width on the multiple output pulse chip to 50ms, but I wouldn't think it should need a tick to reset.

    Let me know if it behaves the same way for you.

    Morden.
     

    Attached Files:

  26. Offline

    treve

    my borken counter / transmitter (yesterday night at pulsar test)
    well, i was able to activate it again today. letting it rest without any player in chunk for some hours fixed it, and its not the first time an error goes away like that. disconnecting and rejoining 1 min later wont help. time for the pulsar test :p

    error: 18 outputs connected, only 4 seen, same transmitter inputs
     
  27. Offline

    Wizbaggd

    Is there any way to get this mod to work over the top of iConomyChestShop (check signs for RedstoneChips before iConomyChestShop gets a chance to look at the sign)?

    Whenever I try to place a simple divider chip (and actually even a clock plus many other of the chips), iConomyChestShop spits the sign back at me telling me I didn't format things correctly. I'm pretty certain it's that mod directly causing the issue, not RedstoneChips, however it appears to be a mod priority thing or whatnot (not sure if that's even controllable).
     
  28. Offline

    treve

    at nala we run iconomy plugin, no problems, or is chestshop something different?
    btw eisental, debug said: possible infine loop detecion blabla, guess thats the 2000 changes in a tick youre talking about. but i dont see where to change that to more (in prefs)
     
  29. Offline

    Wizbaggd

  30. Offline

    eisental

    It seems both plugins detect left-clicks on signs. One immediate workaround would be to use /rcactivate instead of clicking but that's probably very annoying to do for every chip. RedstoneChips will not send any error messages unless it thinks you're actually trying to activate a chip. I believe iConomyChestShop should do the same. I mean, it should at least check that there's a chest around before messing with blocks...

    It's called maxInputChangesPerTick (that's the test build in case anybody else is wondering).

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 6, 2016
  31. Offline

    treve

    hmmm, its getting friend much faster too, to be save, i need to keep ut under 128 pixels, to 256 is try and cross fingers, more is just waiting to get friend, 499 is almost imeadite fried. also, its the counter that has it the hardest, second place the transmitter, weird thing is, the other chips connected to the pulsar can handle the amount of pulses (like the random chip and the not port). so i am not sure if it will fix the problem, but at least its tryable
     

Share This Page