Inactive [MECH/GEN] CrimsonStone 1.0.1 - Extend Redstone [1.2.5-R5.0]

Discussion in 'Inactive/Unsupported Plugins' started by Icyene, Jul 5, 2012.

  1. Offline

    Icyene

    Overview
    CrimsonStone allows users to do things with redstone that were never capable before. From allowing you to place pressure plates on TNT, to underwater redstone, this plugin is a great addition to any server that has users who like redstone.


    Yay, No More Redstone Apocalypses!
    Ever got exceedingly ticked off when you were building some complex redstone circuit involving water and you accidentally let the water flow on your redstone? Have you ever wanted to build a redstone trap underwater, or under lava, but couldn't? If so, then you might appreciate CrimsonStone.

    CrimsonStone mods the water and lava of MineCraft, and adds redstone (and any preset material which you enable in the config) to the list of exceptions (among ladders and sugarcane) that water and lava cannot break.

    Despite first looks, CrimsonStone does NOT block ANY events, and is based purely on extension of the BlockFlowing class.

    Here is an image of CrimsonStone protecting redstone wire and a redstone torch.

    [​IMG]

    Unlike other waterproof mods, CrimsonStone's water actually avoids and flows over redstone (once again because of not cancelling events).

    To make underwater redstoneering even easier, CrimsonStone also allows you to place redstone underwater.

    CrimsonStone can protect any block ids in the waterproofCircuits.waterproofBlocks node in the configuration.


    TNT Cannons... Without Water
    CrimsonStone mods redstone materials, to make them blast proof. In more technical terms, it gives them a resistance of 6000F, equivalent to that of obsidian. However, this doesn't affect how fast it can be broken by a player.

    It can be used as a circuit-grief protection tool, as normally, active circuit+TNT=sad person, but active circuit+TNT+CrimsonStone=wasted TNT.

    Note that currently, it only protects the redstone materials, and not the block underneath, so if the block underneath is broken, so will the redstone.

    Here is an image of a TNT cannon working without water:

    [​IMG]

    Currently, armoring redstone protects:

    Code:
    redstone wire
      redstone torch
      diode
      rail
      powered rail
      detector rail
    
    However, it takes under 3 minutes to add a new block, so if you want a block added to the list, tell me, and I'll add it in for the next version.


    Put Redstone on Anything!
    CrimsonStone also extends existing blocks to allow redstone (and indeed almost any other block) to be placed on them. This means that you can have redstone on fences, and rails on glass. Even levers on TNT. This allows for more creative exploits of redstone's power that defy physics, such as a glass rollercoaster.

    One again, it runs purely on modification basis.

    This is just a glimpse of what can be done with CrimsonStone's override of normal MineCraft blocks.:

    [​IMG]

    Blocks that are modified by CrimsonStone are:

    Code:
      glass
      leaves
      pistons
      glowstone
      TNT
      glass panes
      iron bars
      fence
      nether fence
      [B]NEW[/B]: ice
    

    Installation
    1. Get the latest version of CrimsonStone from here.

    2. Put CrimsonStone.jar in your plugin directory

    3. Start, then stop your server.

    4. A directory named CrimsonStone inside your plugins directory containing a config.yml should have been created. Setting all nodes of
    blockOverride to false will disable your ability to place blocks on anything, likewise will disable waterproofing of redstone for setting all waterproofCircuits.* to false.

    5. Once you have configured CrimsonStone to your needs, restart you server.

    NOTE: TO UNINSTALL, FIRST STOP YOUR SERVER, THEN DELETE CRIMSONSTONE.JAR. OTHERWISE, BAD THINGS WILL HAPPEN (blocks can remain modded)


    Known Bugs
    This project is still in beta stage, so there are probably many bugs lurking around. I have found a number of them, and listed them here.

    1. You get stuck trying to pass through a gap between fence and nether fence, fence and glass, etc.

    2. T Flip-Flops, and other advanced redstone circuits involving pistons do not work properly. To work around this, set blockOverride.pistons to false in the config file.

    3. Looking up at redstone/diode shows no texture as redstone isn't meant to be seen from below. Given Bukkit's current API, it is impossible to fix, but we'll see how it goes with the new official API

    4. On modded blocks, the redstone texture cannot be seen connecting redstone on top of block to redstone below block. Redstone functions normally, however.

    Find a bug? Please let me know by posting the traceback along with as much information as possible, or submit a ticket!


    Plans for Future
    This is a list of things I'd like to implement in this plugin in the (hopefully near) future.

    1. Fix bugs and try to differentiate between the different redstone (Liquidproof enchantment?).

    Have an idea? Post it!

    Videos of CrimsonStone
    Here is a place for cool videos made by users of CrimsonStone.



    Have a video featuring CrimsonStone you'd like to share? Hope this isn't getting annoying, but post it!



    Recommended Plugins
    CraftBook. This plugin was the first to add new mechanics to Minecraft, and fits entirely with the theme of CrimsonStone. From IC's to minecart ejector blocks, this plugin has everything you need to create a server with more modern technology!

    Changelog
    0.07x
    Fixed suffocation bug.
    Cleaned up more code.
    Added ice to BO.

    0.06
    Added armored redstone.
    Made config MUCH more efficient.

    0.05
    Extended the BlockFlowing class for WaterproofCircuits, no more event handling.
    Added config for WaterproofCircuits

    0.04
    Fixed blocks remaining modded after plugin disabling.
    Added config for BlockOverride.

    0.03
    Rewrote all code to be more easily modifiable.
    Added load() and unload() functions.

    0.02
    Cleaned up code by 50%.
    Added underwater placing of redstone.

    0.01
    Initial release, BlockOverride redstone not working.
    WaterproofCircuits using cancelling of BlockFromToEvent.


    Source Code
    The source code for this plugin is located at https://github.com/Icyene/CrimsonStone/, and is licensed under the Creative Commons Public License. In other words, I don't care if you use my code in your plugin, as long as you give me some credit for it.

    Special thanks to, xiaomao who helped me get past MineCraft's private methods for waterproof circuits.

    Additional Links
    CrimsonStone's BukkitDev page
    Github repository
     
    zhuowei likes this.
  2. Offline

    lord_jacob

    Nice idea, but i dont think a lot of servers would use this.
     
  3. Offline

    firecopy

    Nonsense, I could see creative servers putting this plugin on just for the waterproofing redstone! All the other features seem pretty cool as well.
     
  4. Offline

    Codex Arcanum

    Bah. It is rather unkind to just leave this here without even an insufficient explanation. I have not actually tried this plugin yet, but it seems to offer a bunch of very useful features. Go complain about "Different Hunger Games v0.1" instead.
     
  5. Offline

    md_5

    Very very nice, might wanna speak to Me4502 (dev of craftbook), I'm sure he would like to see stuff like this.
    Approved.
     
  6. Offline

    Me4502

    Wow...

    This is amazing... Firstly, what does overriding the BlockFlowing class do different to cancelling events? I have never tried it with flows so I wouldn't know... but this is awesome!

    Maybe we could do a recommended plugins thing on this page and the CraftBook page? So we advertise each others things... And I believe CraftBook and this would work together amazingly.
     
  7. Offline

    Icyene

    OK, that sounds great to me! Honestly didn't think that this would recieve this much attention! It works by inheriting all methods of the block flowing class, but adding an enum to the obfuscated method k. Look at the github page, in the crimsonflowing class. I have some large updates to make to this plugin, butMe, your idea sounds great. Maybe we can discuss it more in 5 days when I get back from vacation? (very hard to type and program from a tablet that cant run minecraft...

    Basically, by cancellibng blockflow event or whatever, if you place water one block above redstone, the water will NEVER flow, which looks bad. Overriding the class to make anything in a list act like ladders , sugarcane, doors etc allows water to flow OVER anything in the list.

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

    Me4502

    Talking more in 5 days seems good.

    Ah, so instead of it just not flowing, it knows its a block it cant flow through... so therefore it will flow around it.
     
  9. Offline

    Icyene

    Pushed 0.07, waiting for approval. This version addresses the suffocation glitch and removes more useless code.
     
  10. Offline

    Visonik46

    i like the concept! and also i like your profile icon xD we got good taste
     
    Icyene likes this.
  11. Offline

    Icyene

    Ohoho, I agree!
     
  12. Offline

    Onyxflamegod

    Would adding the ability to place them on ice be doable? I have a few ice fortresses on the server I use and that would help with making things for it.
     
  13. Offline

    Icyene

    It is. I'll do it for the next-next version. Right now, for SOME reason, water doesn't flow at all...
     
  14. Offline

    Icyene

    I have just pushed CrimsonStone 0.08. This will be the final release for CrimsonStone, as I feel I have achieved everything that I wanted with this plugin, and that was possible with the current Bukkit API. I will most likely update it for 1.3 when it comes out. In the case that the Modding API allows specific things, like creating new block ids and enchantments, I will most likely rework this plugin to create enchantments for each type of redstone, for example, for armored redstone: Blast Protection #. Of course, if a major bug appears before that, I will fix it.
     
  15. Offline

    Zenophias

    Epic plugin! As you posted in the description and so on, to ask you to add a new block, what about making something like a blocks.yml, with a list of the allowed blocks? This way server admins/owners could easily specify which blocks they wanted.
     
  16. Offline

    Icyene

    Zenophias Thanks for the feedback! I could definitely add something like that for the water proofing class, but the rest have to be done manually. I have to add in a new class for every block that I armor / make redstone place-able on.
     
  17. Offline

    Icyene

    Zenophias @Anyone_Who_Cares
    I've just pushed 1.0.1, which contains a fix for a minor duplication glitch and also contains a modification to the waterproofing configuration. The waterproofCircuits.waterproofBlocks is now an integer array, where you specify the ids of the blocks you want to waterproof.
     
  18. Offline

    blade00362

    1.3.1: Still no API but other stuff that could have been delayed.
     
  19. Offline

    Icyene

    Unfortunately. Ah well.
     
  20. Offline

    Zenophias

    Cool! That was my first comment LOL. I didn't actually think anything would happen [cake]
     
    Icyene likes this.
  21. Offline

    LordJask

    No more griefing of redstone anymore, thanks for the plugin! [gold] Have this.
     
  22. Offline

    Stevensaurus

    Looks pretty cool. Thanks!
     
  23. Offline

    Icyene

    LordJask Stevensaurus
    Thanks :3 Means alot.

    I shiver at the thought of how much time will have to go into updating this for 1.3 =/

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

    Zenophias

    Just made a plugin.....I am so new to this. I'm gonna go learn some more Java....LOL
     
  25. Offline

    Icyene

    I've started updating for 1.3. I can say for sure that this will be a tough update. CrimsonStone runs on 95% net.minecraft.server code, and a little bit of BukkitAPI in to glue it all together. I have gotten waterproofing to work, and am working on armoring now.

    I do not wish to hold any of you in the dark. The update from 1.2.5 to 1.3 is going smoothly, but BlockOverride will take longer then expected to get up and running. Until then, I have uploaded a BETA build of CrimsonStone, which has waterproofing and armoring. Some key changes in this version:

    • 1.3 Compatibility
    • Rewritten overriding framework. This was planned for a long time but not released till now.
    • Fixed a idiot bug. I was initializing normal rails like repeaters for the past 5 versions. Now fixed.
    As previously stated, this build is in beta, and does have chance of messing up. Although few things have changed in the Block classes, I tried [and succeeded] to write this in under 2 hours, so there might be silly little bugs. Please report them if they occur.

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

    shell64

    no error but with RB 1.3.1 the plugin in PRE 1.3.1 don't work on my server.
    Not possible to protect my redstone circuit.
     
  27. Offline

    Icyene

    Hmm... Strange. It works fine for me. Try deleting the CrimsonStone folder? It may not have updated since the last version, and there have been significant changes in the config file. Deleting the file should be done every time I release a new version, for safety. If this doesn't fix it, please give me a copy of your config file, your OS, etc.

    Thanks!
     
  28. Offline

    shell64

    Finaly your plugin works great! It was the CB 1.3.1 R1.1 who was in fault, i have back to the R1.0 and all is nice.

    a must have plugin ^^
     
  29. Offline

    Xayges

    How about allowing redstone to float (place redstone on block then delete block and make it float on air)?
    Also, is it possible to allow redstone torch and rails to be waterproof as well?

    Also can you allow redstone to be put vertically onto blocks?

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

    Icyene

    No, sorry. That would require a new block, and that is impossible with the current Bukkit API / MC capabilities.I originally had floating redstone in mind, but it caused the worst case of shared block objects I have ever seen. Maybe by migrating all armored blocks to use an event rather then be resistent I could do this. Any block is waterproof if you add its ID to waterproofCircuits.waterproofBlocks.
     

Share This Page