So, i have a plugin request. I will present you my idea... (I'm french and images tell more than text.) I place some "creep"... And my "creep" will spread slowly... But it never stop... more and more "creep"... everywhere... ARrrrh ! It eat my home ! Now, every morning, i must wash the land... Somebody understand ? EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Nope ! Indeed, Igrow can spread any material on anything, but... The "creep" would'nt destroy the land, trees, your house... Just spread ON the land, trees...etc (Is my english correct ? >< )
At first I thought this was going to be some dumb starcraft mod. But this is HILARIOUS. I think this would be awesome right around the time we start to get bored on a Minecraft server, just dump this on everyone in secret, hidden away locations, so the creep becomes HUGE before anyone ever finds it XD
Huhu, i thought on something : Ok, we can put creep on the land... but... if we put some creep on a cave... or a manor...
Agreed. Probably want to control the drops, too. Might not want players to come into possession of tens of thousands of blocks of netherrack.
I think you would still want to control the drops: tens of thousands of blocks of sponge isn't a lot better.
And what if there were a config file that allowed us to define what block is the creep?! There are already plugins out there that allow us to control drops. x]
If it were adminium then, well, nobody would be able to stop it from completely consuming the entire world That would be good planning; but we would probably want to blacklist certain blocks from being used as creep. Adminium is a good example. True. But it's nice to not have to use a one plug-in to prevent another plug-in from annihilating your economy. It could be such that creep blocks never drop, or only drop 1 in 10 breaks, while normal blocks even of the creep block type break normally and produce normal drops, for example.
Actually it could with the proper configuration you can get the creep to replace any block. You would just need a separate recipe for each material it can "consume". Example: #Recipes file for iGrow #Lines that starts with the '#' sign, will be ignored!! #Usage: # oldBlock,newBlock,needBlock,Chance:OutOf,enableNear # - oldBlock = The block it was before # - newBlock = The block it will change to # - needBlock = The oldBlock needs to be connected to this block # - Chance:OutOf = The chance to let the block change # - enableNear = Spread newBlocks over the oldBlocks #This would replace air with netherrack when next to other netherrack 0,87,87,1:100,false #This would replace wood planks with netherrack when next to other netherrack 5,87,87,1:100,false end of example The configuration is the key here and no additional mod would be necessary. However iGrow does have issues when run too quickly. If someone could simply update it's timer code we'd have a flawless version.
if you want it to replace wood and leaves add the following 18,87,87,1:100,false 17,87,87,1:100, false if you don't add these two lines then trees will not be "eaten"
been messing around with some code for this idea, not liking how it is working out and thinking of changing from a Deterministic solution to a non-Deterministic solution using random numbers I'll keep you guys posted
its not hard to do (took like 10min maybe), its just takes a little while to get the spreading algorithm just the way you want it
I'm going to try and set it up so it only grows/creeps where it can "feed" off other blocks Update: The code is finished, I just need to compile it and test, which I'll do when I get home in approximately 6 hours, isn't senior highschool fun? Edit: One thing I forgot to add was drop protection. Once I've tested and confirmed that the current code works, I'll get to work on implementing some sort of drop protection, not sure how I'd go about it though? Not sure it'd be a good idea to add all the creep blocks to an ArrayList, would it? :/ EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Generally, no, but I do have a suggestion! You could reasonably use one bitvector for each chunk that contains creep blocks. You can set on the bitvector the bits corresponding to the indexes in the chunk data array that are creep blocks. This would allow you to reduce the tracking overhead to 4kb per chunk. That information would also need to be saved when the chunk is unloaded and re-loaded when the chunk is loaded again.
Whoa whoa whoa, I'm new to the Bukkit API, so I'd have to initialise a bitvector per chunk, and set a byte that specifised some sort of Identifier for each block, and then add it to the chunk? From what I read, do chunks store a byte index for each block inside the chunk or what? You lost me at that part Update: I compiled it and I'm just squashing out some small bugs, then onto some testing, expect a possible release tonight unless things turn horribly ugly. Okay, so it's partially working. It starts spreading like I planned, but it's overloading the server after the first creep. Source available on request EDIT by Moderator: merged posts, please use the edit button instead of double posting.
How fast are you running the replacement? If you are running it more than once every 5 minutes it could be your issue. Also is this running on player near? If so at what distance?