[MECH] BlockDoor v005 - Doors out of Blocks - [released]

Discussion in 'WIP and Development Status' started by Arcwolf, Mar 28, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Nigel

    hey guys love the plugin but i was trying to increase the size i can make doors and zone to no avail heres my config

    #Max size for X Y Z
    # -1 to override
    max_zone_size=999999
    max_door_size=999999
    #
    #Advanced Users
    #
    allow_overlap_zones=true
    allow_overlap_doors=true
    allow_overlap_triggers=true
    allow_overlap_redstone=true

    i also tryed -1 in place of 99999
    but if i go over about a 4X5X1 it says block dimentions not accepted

    also on the topic of overlapping zones i used to use them in hyomob days to have large mutistage doors that rose in segments as i approach like a big blast door so i hope thats working and i also made bridges that only appeared as you walk accross them (think indiana jones leap of faith :))
     
  2. Offline

    Arcwolf

    v0.0037
    If a door is deleted its associated links are also deleted from triggers and zones.
    Commands are canceled when a player teleports.
    Triggers that are broke by the player are deleted from the database.
    Permissions are associated with breaking triggers. If a player doesnt have permissions for that action, the event is canceled.
    Permission node is blockdoor.breaktriggers
    Admin Permission node is blockdoor.breaktriggers.admin
    fixed a bug causing config max_doorsize=-1 not to work for doors.


    Are you sure you are using BlockDoor v0.0037 or later? I just tested it out in my test world with a door of 20x20x20x and it worked ok. Using both -1 and 20. For max door size. -1 allowed a door of 20x and bigger, while 20 only allowed 20x no bigger. Check the version to make sure its at least version 37.

    Thats why I left the option to disable up to the admin. It should work correctly. I tested it pretty thoroughly a version or two ago. But I went ahead and did a quick test with player detection zones and it appears to work. I'll keep testing a little later today and make sure 100%. But initial tests show it should work A OK :)
     
  3. Offline

    Nigel

    also did you change max_door_size=-1 to max_doorsize=-1 or was it just a typo?
     
  4. Offline

    Arcwolf

    yea, that was a typo. My bad.

    In other news, new version is release. I fixed a bunch of stuff so if you are having problems I HIGHLY recommend testing the new v39 out. It may help out. Pretty long changelog so I didnt post it here. Check the OP for details.
     
  5. Offline

    Nigel

    hey mate running Vs 0039 and still not able to create large doors wit it saying door dimentions rejected, perhaps you could put a working config with unlimited door size so i can check it against mine, thanks, in my tests the biggest door i can get is 8X8
     
  6. Offline

    Arcwolf

    I'm not sure whats going on with your blockdoor but something isnt right. If its a bug I want to find it. However I just cant reproduce the issue.

    [​IMG]

    Each one of those squares is a door I just made 1x up to 20x. I have * permissions for my self. I doubt that would make a difference though because permissions are not used for max size. Maybe its an error in your config file. Have you deleted it and let BlockDoor recreate one.

    In any case below is the config file I am currently using to create those doors.

    Here is the BlockDoor database generated for each of the doors
    Code:
    DOOR:player:1x:-5:1:-22:-5:1:-22:true:1,0:0,0:false:world
    DOOR:player:2x1:4:1:-23:4:1:-22:true:1,0:0,0:false:world
    DOOR:player:2x2:6:1:-23:7:1:-22:true:1,0:0,0:false:world
    DOOR:player:3x3x3:12:1:-24:14:3:-22:true:1,0:0,0:false:world
    DOOR:player:2x3x4:16:1:-24:17:4:-22:true:1,0:0,0:false:world
    DOOR:player:10x10x10x:19:1:-31:28:10:-22:true:1,0:0,0:false:world
    DOOR:player:20x20x20x:30:1:-41:49:20:-22:true:1,0:0,0:false:world
    DOOR:player:1x2:-3:1:-22:-2:1:-22:true:1,0:0,0:false:world
    DOOR:player:1x3:0:1:-22:2:1:-22:true:1,0:0,0:false:world
    DOOR:player:2x2x2:9:1:-23:10:2:-22:true:1,0:0,0:false:world
    Maybe its the coordinates your building at... I guess that could be a thought. Send me your coordinates for the door and I'll try to create it here. Right now though I'm pretty stumped why you are having this problem.
     

    Attached Files:

  7. Offline

    Nigel

    i tryed that config of yours which as expected wasnt the problem, also sorry i didnt hook up a error log but my hosting copmany just updated iconomy to version 5 and the log file even after i deleted it and reset the log was like 60 pages long and i couldnt find any blockdoor errors but ill give it a good crack now
     
  8. Offline

    Arcwolf

    I doubt an error log would contain any helpful information on this problem anyway. There is only one error that would be displayed if there was a problem with the config file.
    BlockDoor.logger.log(Level.SEVERE, "Max Door Size in config wrong. Default value used");

    at that point the value would default to 10 for doors. I'm checking to see if some how my max size formula is wrong or something... but I cant really test any more until tonight.

    On a side note, I tried everything I can think of to break the max size, Left clicking, right clicking, Admin, or player only permissions. I even made a door 198x197x89x(would have been bigger but I lost count somewhere :p) anyway, still didnt break it... it all works like it should. I'll see about maybe uploading a debug version tonight as well.
     
  9. Offline

    Nigel

    yeah well its infinately repeatable i cannot make doors bigger than about 8X8X1 or any variation of that many block (actual figure may be wrong but around that many) something to note is my other plugins are:

    Stats,Achievements,AppleTreePlugin,AutoReplace,Backpack,Bacon,BlockDoor,BlocksOnGlass,CommandHelper,CommandSigns,CookieMonster_1.3.1,CraftBookMechanisms,CraftBookVehicles,Elevators,FenceStack,General,MinecartManiaCore,MinecartManiaPressurePlates,MinecartManiaTeleport,MobRider,Money2XP,MonsterTamer,MusicCraft,NaturalGiants,Nether,PP,Persistence,PlgWarp,PorteCoulissante,QuickStrasse,RealShop,RemoteBukkit,RetractableBridge,SecretDoors,ServerPort,SkyPirates,StairDrop,TelePlusPlus,TimeAnnounce,Tunnelr,WeatherGod,WolfPound,WorldEdit,WormholeXTreme0.801,creaturebox,creaturebox,iConomy,mcMMO,minecartmaniaadmincontrols,minecartmaniaautocart,minecartmaniaautomations,minecartmaniachestcontrol,minecartmaniasigncommands,minecartmaniastation,properTime,uQuest

    (dont try to bend your head around these as i will test with none of them but i doubt its a conflict.)
     
  10. Offline

    Arcwolf

    :( sorry, too bad I cant repeat it on this end. Its pretty frustrating for me and you. :-/

    Well, best I can do right now is upload this debug version. When ever you create a door, it will output a chat to you with The door's name, its X Y Z start and end, its detected dimensions, the MAX_DOOR_SIZE variable and if it was rejected or not.

    Give that a shot, make some doors with it and report back your findings. I would have put the info in the logger but I dont want you to have to wade through 60+ pages of log just to find some small block door stuff. Maybe this will shed some light on the inner working of the problem.

    The other thing to consider and I dont really know for sure but I'm curious about your "Host" and its upgrade of iConomy. They upgraded it? What if they havent upgraded from BlockDoor 36? or it doesnt work that way? I duno just curious because this bug sounds an awful lot like the very same bug I know for sure I squashed like 3 versions ago. It was caused by an order of operation error in the door detection conditional statement. IE I forgot some ( )

    I wish you luck and await your reply.
     
  11. Offline

    Nigel

    righto ill see how that goes
     
  12. Offline

    Arcwolf

    v0.004
    fixed blockdoor.breaktriggers.admin so it was a valid node by its self. Admins no longer have to have blockdoor.breaktriggers node to use the admin node.
    changed blockdoor.breaktriggers to blockdoor.breaktriggers.player
    Fixed redstone triggers so users can right and left click to create them. The left click break event will be canceled if it occures during a redstone trigger command for things like redstone dust and redstone torches.
    added /dlist <type> <player> <page> to console commands
    added /ddel <type> <objectname> <player> <world> to console commands
    moved onQuit database save out of onDisable and into the DataWriter class
    internal efficiency changes to object finding. Objects not found are no longer created only to be destroyed instantly. Vestigial code from Hey0 port.
    fixed /ddel usage message so it doesnt over shoot the edge of the chat window.
    incorporated a memory saving array trim to entityList array. If the array decreases in size by 25% its peak size a trim will occure to free up memory. May come in handy for large servers with many players and therefor a very large number of entities to keep track of.
    fixed a possable concurent modification exception in zone entity detection
    removed redstone repeaters and detector/power rails as a valid Redstone triggers. They dont output a redstone change event like I though they would...

    I made a really short 10 second video of a WindMill that is possible with BlockDoor now that Redstone is incorporated into its design. Its 16 door objects linked to 4 redstone triggers on a redstone repeater array. It looks pretty cool and only took about 15 minutes to make. The possibilities are endless for this sort of stuff.

     
  13. Offline

    Daur

    Is the two state door code implemented? Every time I create a door region and link it to a trigger it fills back in with stone by default when I turn it on/off. I'm unable to create two different states of a door. I don't see how making something like the windmill is possible. Maybe I'm missing something or have an old version. Any help would be appreciated.

    Great plugin btw and looking forward to its progress.
     
  14. Offline

    Arcwolf

    you change the "states" of a door by using the /dfill and /dempty.

    the fill state is some block id of your choosing while the empty state is another. Thereby creating a door whose open is the empty state and the close is the fill

    So if I do the following:

    /ddoor mydoor
    a door that fills with stone and is empty with air is created by default
    /dfill mydoor wood
    will tell the door that I want it to be wood not stone on its next toggle
    From that point on its fill state will be wood
    The same is true for /dempty.

    That would be how you can create a two state door. Pretty cut and dry :)
     
  15. Offline

    Daur

    Thank you for your quick reply.

    I appologize for not being clear in my post as to what I meant about two states. Instead of having all the same block filled in the area for the door is it possible to make doors that have several different blocks in their design. Like in this video you had posted a while back.


    The video shows one state with a certain pattern of blocks, and the other state is a different pattern, and they're not all the same block.
     
  16. Offline

    Arcwolf

    no not at this time. Hoober has yet to respond back with the source code for that particular version of blockdoor. He, as far as I can tell, never release that to the public. ... or if he did I never saw it. In any case, that is not implemented yet. So two state per that example is not possible yet. Sorry.

    Eventually I do plan on working that in either my self or through incorporation of the source from the version of blockdoor shown in that video.

    So to create the windmill from my sample video you need to create separate doors for each part of the fan blades. A pain in the rear for sure in larger builds but the only way until 2state is programmed in.

    ---edit---

    If anyone happens to have a copy of that above version for hey0 I'd love to have the jar for it...
     
  17. Offline

    Daur

    No problem. I figured it wasn't possible I just wanted to make sure. I've been looking at your source for the door toggle method and realized it was using the one block read from the blockdoors.txt file to do the fill for open and closed states. You would need to save the array of blocks for each state instead of just one for a fill.

    Anyways, I appreciate your help again and I look forward to future updates. This plugin has great potential.
     
  18. Offline

    Arcwolf

    Correct... in fact I'm thinking I'd need to use a different method all together for storage of that amount of data. Thats something I've been pondering for a while now. And since hoober emailed me telling me about that other version I've been really curious how he pulled it off. I'm sure its not hard once I wrap my head around it. I just dont want to reinvent the wheel so to speak... if I dont have to.

    On another note, if anyone has any enhancements they care to share programming wise. I'd love to hear them. I'm learning this stuff as I go along so I'm sure there's a bunch of noob mistakes all over the place in BlockDoor that could eat servers alive performance wise :p

    In fact, thats one of the reasons I'm reluctant to release this to general audience is because of performance. I'm seeing that windmill object eat 5% above normal processor while its active. But if I use a plugin like Elevators and move a 5x5x5x elevator up 9 stories I dont see a even a 1% blip from my processor... so I am doing something very inefficiently I guess. Still looking into it. :-/ more threading maybe? duno, need to study some more community plugins and see how others are doing...
     
  19. BUG REPORT
    "just don't say THIS IS A FEATURE"

    when I set fill to water, it fills with statwater (even states this with "set to id: 9,0")

    NB: editing the blockdoors.txt and restarting the server still works ( I wonder if there's a command to reload bdoor data)
     
  20. Offline

    Arcwolf

    If you dont want it to fill with statwater then edit the items database so it fills with 08 as non statwater. Or alternatively you could type in /dfill mydoor 8 and it will make flowing water.

    I think... I may have forgot about that while I was testing something with the item database. I dont use water in any of my tests :p my bad. It got overlooked...

    So yea, its a feature right now. But wont be a feature in later versions. See, now you've got me removing features...<sigh> :)

    --edit--

    Ok, fixed in my development version. Thanks for the report! I'll look into making a reload command for admins or something. Maybe for next version who knows...

    v0.004a
    fixed some bugs in the admin console commands
    door states are no longer saved to disk as soon as they change. Instead now they are only saved when the server shuts down or the plugin is disabled. Reduces Disk IO.
    pre-request /dreload is now a admin command for console and ingame. Will reload all blockdoor datafiles. Any unsaved changes will be reverted. (door states mostly) IE if they were open or closed.
    permissions node -> blockdoor.reload
    fixed itemdatabase to include flowing water. Item id 08 and changed realname from water = 09 stationarywater to water = 08 flowingwater
    also fixed lava in the same way. No idea how I ended up forgetting those?
    Config file now contains a switch for enabling console commands. They are now disabled by default. Users with old config files will need to delete them and let blockdoor recreate the config file or add allow_console_commands=false to the bottom of the config file.
    refactored and organized the package a little
    did a little cleanup in the Dlister class

    No big changes just some fixes for some small things here and there...

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

    Arcwolf

    For those interested, I've begun work on the TwoState Door. Still no word from ho0ber with the source for his vision of the TwoState door. I've emailed him several times now... So, I've decided to replicate what I'm seeing in the video we have of the TwoState door he implemented. Currently, in my test build a player can select a door region much like you would create a zone. The plugin will then memorize the contents of that region and output the region data to the blockdoor.txt datafile.

    If changes occur in state one or state two a toggle will swap out those changed blocks. So, toggling is working great. Next up is linking in with the BlockBreak & BlockPlace event to allow players to change state one or state two like in the video. Right now you have to manually edit the blockdoor file which is not intuitive and quite confusing actually...

    Anyway, after that I'll be working on getting the door linking up with triggers and allowing for overlaping doors for those of us who would like to use this as an easy animation feature. ie Complex windmills and what ever else comes to mind. If all goes as planned I hope to have something for everyone to play with by Friday this week. Thats best case scenario mind you :)

    So, its coming along quite nicely and should prove to be a very powerful feature when completed. ... ok back to programming :cool:

    OK, I've now got it working the same way it seems to work in the Two State Video posted by ho0ber back in December. Now I just need to incorporate it into blockdoor and work on allowing overlapping. Then we can really have some fun. Its a beautiful thing. Think of the stuff one could create. :D I cant wait till I get this working. I'm so going to use this... ALOT!
    [​IMG]
    Isnt that just begging to be animated. hmmmm, yes... yes it is! lol

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

    Arcwolf

    Hit some snags that unfortunately will delay release of the Twostate working version... <sigh> seems a lot of "corner cases" as notch would say are in there to gum up the works.

    I have to develop some workarounds for things like torches being placed and popping off... flowers and mushrooms being used ... well actually just about anything that has a condition where if its placed wrongly might pop off, resulting in a toggle switch that would create an endless supply of an item as it pops into existence as an item instead of a block.

    Most likely there will be some kind of prevention to keep users from using unacceptable block types in a TwoState door. At least initially. Hence the delay. Anyway, thats going to push it back to sometime next week maybe. Depends on how long it takes to code and test and stuff.

    So, for anyone who is following I've included below a prototype with the TwoState door in a very rough condition. It functions the way the video posted a bit ago shows. If you like bleeding edge stuff and are just curious how its going to look a download is below.

    I HIGHLY recommend not using this on any sort of production server. Nothing is changed in it to warrant use like that. 004a functionality is identical except the twostate thing. No bug fixes nothing like that.

    No need reporting bugs on this prototype. I know its buggy, its a prototype.

    Known issues right now:
    • Lighting might be off.
    • Items like flowers and torches might pop off if used in the door.
    • Overlaping Twostate doors is not checked for and wont work right now. Since I havent implemented any sort of locking for overlaped doors. An edit in one overlapped door edits all doors.
    • Signs will lose their text when a door is toggled.
    • Signs might also be lit wrongly after a toggle
    • Chests or objects that store items will lose their items on toggle
    • Maybe some other stuff I havent found yet. But nothing that will eat your server.
    Permission node for twostate doors:

    blockdoor.twostate

    Commands:

    /dtwostate <doorname>

    /dlink <trigger> <triggername> <twostatedoorname> <toggletype> <1/2>

    1 being a link to a regular door, 2 being a link to a twostate door. 1 is optional, if its omitted dlink should assume you mean a single state 4a door style.

    /ddel <twostate> <doorname>

    Last little note: Back up your BlockDoor.txt database. There are some changes in there that I think will make it incompatible with 4a.

    Version 5 makes those changes to the database automatically on first run.

    Prototype:

    REMOVED!
     
  23. Offline

    ValBGaming

    I just noticed nobody has said anything in this thread except for Arcwolf since Sunday, so I feel I should say something.

    Love the plugin! :D
     
  24. Offline

    Arcwolf

    1,913 some odd views... yea I have a feeling there are a lot of lurkers out there lol. Thats cool, thanks for the encourage ValBGaming :)

    I keep pluggin along on this because I use it, its fun to add new features to it and its fun to program :cool: No point in keeping to my self about news on updates and stuff. I'm glad people are getting use out of it.
     
  25. Offline

    Arcwolf

    Been a little while since my last update, but I have good news. v05 with Two State doors is completed. I've been testing it for a few days now and I think I've nailed most of the bugs. If not I'm sure I'll be told about it ;)

    Anyway, there is a readme in the zip file that should get you going with creating a two state door. I'll update the OP tomorrow some time. Too late for me tonight.

    Anyway, here is the link to a vid I made of a Two State Windmill animation.


    and Here is the link to the zip file.

    DOWNLOAD --- See Open post for download link

    Test it out.

    A few things to note:

    The config file will need to be deleted and BlockDoor allowed to regenerate it. Also, if you have created a TwoState door with the prototype I posted a while back. Those will need to be removed from the BlockDoor Database, either with the /ddel using the prototype version or by hand. They wont work with the new version. I had to change the Data set for the door to include more information.

    Also, in the config is a switch to allow special block types. Those include the following: Flowers, Mushrooms, torches, redstone, redstone torches, doors, sugarcane, levers, buttons, pressureplates and cacti.

    Block Types not allowed into a Two State door include:
    Lava, water, signs, beds, mob spawners, sand and gravel. There was either too many weird physics checks for them or too much data to store. Also a lot of weird cases where they could cause popping of other blocks and cause general havoc on the blockdoor database or break a door and generate infinite item spawns.

    Special note for Furnaces, dispensers and chests. They can be placed inside a door but their contents are lost. Too much data to store and sort of outside the scope of a door anyway. I may remove them in the future. Just depends on their usefulness and demand.

    I think thats all for now. I'll update the main post with stuff tomorrow. If you have questions feel free to ask.

    OP updated
     
  26. Offline

    Arcwolf

    Everything seems to work ok for Bukkit 818... No one has any bugs or anything to mention? Everything working ok?

    Still no word from Ho0ber... guess aliens abducted him or something? Not a peep since mid april... :-/
     
  27. Offline

    Arcwolf

    Made some quick changes for the new blocks in 1.6.6

    Grass, shrubs and trap doors are now taken into account in special block checks for those that use that feature in twostate doors.

    I also tested Nether portals as a twostate door. BlockDoor simply removes the portal when the door toggles. It does not put it back and since fire is not allowed in twostate doors the portal can not be re-opened.

    That is going to stay that way for now. Way to much work to figure out how to get that to work right.

    .005b is uploaded. Link in the OP

    1 week before I submit this for general use. I dont see any bugs my self and no one has posted here in a while. So, I assume everything must be working ok...
     
  28. Offline

    ValBGaming

    Your doing a great job with the plugin -- I use it a lot on my server. :D

    P.S. ~ I'm probably going to post a comment on this whenever I go to update, it seems as if your very alone in this topic... Not many people posting anything... :oops:
     
  29. Offline

    Arcwolf

    Yea, not too sure why that is... not many people download it either. Maybe because its a WIP thread. I'm just too hesitant to put this in a more public light. The plugin is very complex and could easily eat a large server alive.

    Thats why I got the idea to release another plugin. It has plenty of (candy) to lure people into using it and the guts are using many of the concepts and ideas that I used to create blockdoor. Its allowing me to test how things work in a much larger audience. Already have found some issues and am working on fixing those in BlockDoor day by day.

    With something this complex Its got to be done right first time.

    Thanks for replying though. I do appreciate any support! :)

    Also, if you feel like it (and this is for any one really) check out my other plugin located HERE

    Ps. I'll probably be releasing another BlockDoor version in a day or two. I am testing it now...
     
  30. Offline

    ValBGaming

    Sure I'll check it out and let you know what I think of it in its topic! :D
     
Thread Status:
Not open for further replies.

Share This Page