Filled Obsidian Spread/NameChange

Discussion in 'Archived: Plugin Requests' started by rektok, Aug 7, 2014.

  1. Offline

    rektok

    Name: Anything You Want :)

    Commands:
    /Melcilia safezone {name} - Claims safezone
    /Melcilia unclaim {name} - Unclaims safezone
    /Melcilia list - Lists all safezone areas
    /Melcilia info - Determines if you are currently in a safezone or not

    Permissions:
    melcilia.claim
    melcilia.unclaim
    melcilia.list
    melcilia.info

    What it does:

    Alright, so this plugin makes an infected block. In this case, Obsidian. I need this plugin, to change the name of Obsidian, to Melcilia. What I need, is when someone places an obsidian/Melcilia block, it starts to spread, like a virus.

    Obsidian/Melcilia info:

    When placed, the block can consume EVERY block in its way. The only limitations, is it can't spread below 50 and down, and one block cannot spread over 50 blocks. There are some blocks that it cannot consume: Air, chest, door, craftingtable, portal, water, lava, endportal, endportalblock, all redstone products, sign, itemframe, blockade(1.8 update), enderchest and blocks in the safezone. There is probably more blocks that need to be protected, but these are the ones that came to me.

    Safezone:

    Now, there are some things that this can cause problems for. Like the spawn area or protected areas. It can cause a lot of issues. So, that is what the safezone is for. The safezone depends on the Worldedit wand (wooden axe). You select two points, then use /melcilia safezone {name}. It will then claim that area. You can also remove the safezone by /melcilia unclaim {name}. To list all the safezones, you can use /Melcilia list. To determine if you are currently in a safezone, you can use /melcilia info. If you are in a safezone, it will message you saying that you are. If not, it will say so.


    Thanks for reading! :)
    - Rektok
     
  2. Offline

    bluekelp

    InfectedEarth v0.5.0 (will post link after I code a few more things, probably later Saturday)

    awesome idea! i'm on it and spent a few hours - have a preliminary version done and it's pretty cool looking.

    what do you plan on using it for (i.e., other than spawn why protect areas, etc.)?

    have some questions/clarifications, pls:
    - how quickly should it spread? i.e. how much time to expand to full size? (in real time, not game days)
    - should it favor spreading in length+width instead of going deep, or any direction equally good? (a lot of the growth can be below ground and unseen - not sure if it should try and "spread" over an area or go deep/etc.)
    - can it creep diagonally and/or skip a block or two - or remain a contiguous chunk?

    TODO
    - protected areas (try and integrate w/existing protect mods or dup-own protect functionality?)
    - rename to Melcilia (may only be able to do in some places)
    - have infections spread across chunks
    - configuration options (e.g. exclude list)
    - permission nodes for placing block or protecting areas
    - exclude "natural" obsidian (w/lava and/or flowing water nearby)?
     
  3. Offline

    rektok

    bluekelp

    How fast it spreads:
    We don't want it to be too fast, cause then it would become a spam instead of a cool plugin. I would think about 10 or 15 minutes for it to spread to it's full length.

    Favor w/ length and deepness:
    Hmm, that's tricky. I think it should favor going in length, but it should go deep as well. If places on the surface, it will be more visible. But I also would like it as a blockade for underground bases. Where it can be placed underground, thus it will spread as an underground barrier.

    Creeping:
    I think allowing it to creep would make it more realistic and quite frank, cooler. Having a couple original blocks in the Melcilia would be pretty cool.

    TODO:
    Protected Areas: Yeah, try to do that. Like if someone has Factions or PlotMe, try to integrate it where it won't spread.

    Renaming: Yeah, that's fine, I understand.

    Configs: Just an idea, adding world support may be a good idea. Like, ex. In world, world, Melcilia won't spread unless you enable it in the config. Just a suggestion

    Excluding Natural obsidian, such as water over obsidian: Yeah, I think that would be a good idea. Only when placed by Player, it will begin to spread.




    Suggestions for future updates:

    If, in the config, you can set effects, when walking on Melcilia. Such as slowness, or jump boost. I don't know if this is possible, and it is not necessarily needed.

    Potential of this plugin:

    This plugin, when made, could open up completely new minigames, such as last man standing.




    - Thanks for doing this so much!

    (Just fyi, I don't know what you think. But this is not a private plugin. I know some people mistake this as private, but full credit goes to you, so you can do what you wish to it. You don't even have to add my name to the dev page of the plugin)
     
  4. Offline

    bluekelp

    TEST build: http://bluekelp.com/bukkit-plugins/InfectedEarth-0.7.0.jar

    Major TODOs before you'll probably want to use it on your live server
    1. Honor protected areas (it does nothing re: protection now)
    2. Allow spreading across chunks
    3. Only spreads when a player is in the chunk.
    4. Do not grow below a configurable depth
    5. QA it to make sure it doesn't infect anything you don't want it to (it infects all "blocks" but not things like snow, water, etc. - I think this will work but let me know what odd cases you find)

    What Works
    - players placing obsidian infects the block and it will auto-spread (based on config.yml) settings
    - use "/infectedearth reload" to reload config file if you edit it (no in-game editing yet)
    - chunks stop growing and become uninfected after they grow to the max (since it's confined to a single chunk you might want to lower the growth size so it doesn't go too deep)
    - you can re-infect a chunk by putting another block down
    - infects any non-air "block" (so should leave chests, doors, redstone, etc. alone - though I haven't tested that fully yet)

    Currently the infection is confined to a chunk (see #2). This will look weird as you'll have straight lines where the infection stops and infections will tend to run deep if they run out of places to go when near chunk edge.

    I can fix #2,3, and 4 with a few more cycles. Need to research protection plugins for and APIs #1. If you use a specific protection plugin that you want integration with, let me know which and I'll try and get that one working.

    If you have a test server or whatever, go ahead and play with this and let me know how compares to what you envisioned.

    Is your server public? If so, PM me the address and I'll stop by some time - I'd like to see what you're doing with it.
     
  5. Offline

    rektok

    bluekelp

    Flagging Protection for other plugins:

    At the moment I don't think we'll need a lot of protection plugins to run with InfectedWorld expect Factions. People can just claim a protected zone. But otherwise, I think #2,3 and 4 are great, keep them as they are.
     
  6. Offline

    bluekelp

    BETA build http://bluekelp.com/bukkit-plugins/InfectedEarth-0.9.0.jar

    rektok: #1 and 4 from "major TODOs" still remain.

    read the config.yml that is generated (delete the old first) if you want details on how it works but there are some interesting side effects to the implementation:
    - groups can join together and will grow as one
    - sometimes will grow faster when they join
    - if you mine blocks of a completed group it might start growing again
    - you can stop an infection if you break all the initially placed blocks
    - spread across chunks
    - all infection stops when the server is reset

    you can also stop all growth if it is lagging the server ("/infectedearth reset").

    next batch of changes will focus on limiting the plugin and its use and polish:
    - permission required to start an infection
    - permissions for admin commands (other than stopping all there's nothing else ppl can do right now)
    - more admin commands
    - stopping infection from going too deep
    - (?) factions integration (or maybe World Guard -- which ever has a quicker/better API :) )
     
  7. Offline

    rektok

    bluekelp
    Sounds good! This plugin keeps getting better and better! I'm installing the BETA version right now.
     
  8. Offline

    bluekelp

    rektok awesome! thanks for the positive comments. please let me know how you like it and i'll start looking into honoring region protection.

    it would also be really good for you to create a series of test islands (only 1 block thick) in the air with all the things you do not want destroyed on the island to test. infect the island and make sure it is not going to grief you if people start using this. (e.g., you mentioned chests, and redstone, so put some of those on a small island of dirt and infect it - make sure it spreads to everything but what you want left alone.). to be sure, make the islands much smaller than the group size so the infection has nowhere to go but into objects if it can.

    infections currently only spread into Materials that are blocks (Material.isBlock() == true), that are not AIR. we can tweak the list and add/remove things as needed and/or make it a configuration option.
     

Share This Page