RailDriver
RailDriver
This plugin provides a player with the ability to build a coal powered mining and railroad construction machine!
NEW FEATURES
- RailDriver has same break/build permissions as the user who started it
- Respects WorldGuard regions explicitly
- Respects all blockBreakEvent intercepting anti-grief plugins
- Won't break bedrock or obsidian
- Stops all user owned RailDrivers when user logs out
- Creates proper drops for mined blocks
For Players
Construction
To build one, the player must assemble a specific pattern of rare blocks.
- 9 X Diamond Block
- 9 X Sticky Piston
- 19 X Iron Block
- 4 X Redstone Repeater
- 2 X Redstone Dust
- 2 X Switch
- 2 X Dispenser
- 2 X Furnace
- 1 X Chest
The first layer
of blocks is layed out like so, with sticky pistons facing forwards and furnaces facing backwards:
The second layer
begins shifted one block forward from the first. Notice the four Redstone Repeaters all facing forwards:
The second layer is completed
with dispensers facing backwards:
The third layer
starts with a mirror of the bottom layer. Note the helper cobblestone block that will need to be removed:
The power row
is composed of the Redstone and Switch to drive the pistons. If you throw this switch it will activate all the pistons, but make sure it is in the off position before attempting to start your RailDriver!
Complete
your RailDriver by adding the backwards facing chest and the activation switch:
Operation
Once built, the player can activate the RailDriver simply by throwing the switch on the rear. A RailDriver will dig a three by three tunnel, laying a foundation of stone brick with a single rail in the middle. Every eight blocks, the RailDriver will lay a Power Rail with a Stone Brick column on either side, a Redstone torch on one to power the rail, and a regular torch on the other for light. To keep the thing going, the player must provide a steady supply of coal and building materials. All of this happens in two operational phases.
Drilling Phase
When activated the RailDriver will immediately enter the Drilling phase. Fuel for this phase comes in the form of coal or charcoal which must be loaded into the furnaces. Every drilling phase will consume 1 coal from each furnace (2 coal total).
The diamond drill bit will piston into any blocks in front, drilling the next stage of the passage, and ejecting the removed blocks from the rear dispensers.
Normal Laying Phase
Once drilling is complete, the RailDriver enters the Normal Laying Phase. Supplies needed when laying the foundation and track must be in the chest above the switch at the back of the machine. These supplies are consumed when the RailDriver moves forwards 1 block. During a Normal Laying Phase, the RailDriver needs 3 cobblestone, 2 iron, and 1 stick loaded into the chest.
The RailDriver will use the supplies to create the required items, lay them down, and move forward by one block. You'll notice that due to the RailDriver's extremely efficient design, it is capable of creating a Rail with only 2 Iron Ingots. Amazing!
Power Laying Phase
Every 8 blocks, the RailDriver will enter a Power Laying Phase instead. To complete this phase it needs 9 cobblestone, 3 sticks, 2 gold ingots, 1 redstone, and 1 coal loaded into the chest.
The RailDriver will use these supplies to create the power rail and the power columns.
For Server Admins
Installation
Download the jar here. Drop it in your plugins directory and go!
Configuration
Standard config.yml in the RailDriver directory. Plugin reload is required for config file changes to take effect
requires_fuel option determines if RailDrivers require fuel and supplies in order to operate. When set to false, an active RailDriver will not consume coal from the furnaces nor supplies from the chest.
Commands
rd_stock: description: stock the player inventory with all required blocks for building a RailDriver permission: RailDriver.rd_stock usage: /rd_stock [player] rd_devkit: description: stock the player inventory with a developer kit of tools permission: RailDriver.rd_devkit usage: /rd_devkit [player]
Permissions
RailDriver.rd_stock: description: allows player to execute the rd_stock command default: op RailDriver.rd_devkit: description: allows player to execute the rd_devkit command default: op
@M3DDLER
For the filling in broken ground, and being able to effectively tunnel through water/lava, the Driver I believe was created with the intention to not create something that will just simply turn the landscape into swiss cheese without needing some attention or at least some controls. Since this is globnobulous' plugin, I don't want to go against the spirit of his original idea really.
However, I do see some merit in what you've suggested.
I don't see a problem with the Driver handling minor fixes to local environment, (as long as it uses the resources it has on hand), just that filling in chasms I don't really see as a function of this. There's also the question of what to fill the hole with. I'd like to use resources in the chest and its a matter of what to use (filling large chasms would eat up a lot of the chest contents quickly as well :) and what to pick.
What is effectively "drilling through liquids" (as Drilling across the top is effectively a hole filling exercise) and creating a tunnel again is possible, but I'd not like to lose the liquid if anything a suitable amphibious Driver may be able to "drill" through the liquid and keep a tube, but I think it should spit the liquid out of the back.. removal of said liquid is then an exercise for the player (the driver could bucket it I guess, but it would need the buckets for the source blocks in its storage).
I love the path defining, it was something I'd considered before, effectively setting waypoints and having the driver act upon them when it hits them. While anything other than 90 degree turns would be problematic to say the least.
All these are either additional functions or variation on the original machine type, which is either an alternative or additive to the rail laying function of the original Driver, you could in fact argue that you need different machines
- Aquatic Drill: The existing driver can have its redstone washed off, a slightly different driver designed to specifically create a tunnel as a "tube" and handle liquids it encounters
- Path laying: Digging through the solid lower levels, I can't see direction controls being useful (you'd have to dig ahead to lay the signs etc..) so this is more where it digs through hills and you're laying roads/rails automatically so a machine that is capable of a certain level of digging but focuses more on path laying (gravel path? cobble path? stone path? dirt path? fences?) with or without rails.
- Bridge builder: Sort of an additional function that permits the machine to fill in shallower holes, or build bridges over holes of greater depths. Again I can't see a huge use for this underground (unless you already had a large cavern or open space you wanted to bridge) as you'd have to do all the assembly and stocking for a smaller underground space whereas the larger spaces where it can be left to roam greater distances unattended it can be more useful.
Basically I would envision each as slightly different machines, of differing costs not necessarily all with Diamond tips (I know 81 diamonds can be hard on some people :) ), for those things which are not going to drill much could use a lesser grade tip material to represent its reduced drilling capabilities. This also brings up the possibility of drill bit durability, and having it perform differently and potentially break (sort of like how tools work).
I'm not against adding different machine types, but I don't want really to mod the one Driver into a slicing-dicing-churning-do-everything machine which solves all its own problems without any help. If we want one of those, maybe we should craft it out of nothing but diamond blocks to make the cost astronomical :)
I would however reiterate that I don't want to go against the spirit behind the original plugin, so would like globnobulous' input on this, as ofc, in the end he can reject changes I make to his repository easily enough - there is little point in me working on something if he'll just throw it away :)
Lastly this would be more of a larger task, so I would approach this when I've cleared off more of the list on the github issues list (things like world protection, Driver chunk persistence, so it'll keep rolling when you run far away from it) and that can be released.
@SirMonsterSlayer
Sorry for not replying sooner, but yes. The permission will be "true" by default, but you can change that and assign the right to any user/group you desire within your own permission structure. The "switch on" right will just allow whoever has the right to activate any Driver in the world.
Thanks for an awesome plugin and a special thanks for updating it as i was concerned this had been abandoned at one point.
I would like to make a few suggestions if i may.
1. Can you make it so that it fills in or bridges broken ground.
2. Can you make it so it can fill it the surrounding blocks to eliminate problems when it encounters water/lava and also to plug gaps in the tunnel.
3. Make it so when it encounters a sign, that sign can tell it to turn left or right 90 degrees.
Thanks
M3DS
So we can choose who's able to use the driver and who not. Jobs / Rpgs Special Rights/Vips
@MRCartm0n
As this has cropped up more than once I'll throw in a permission node for turning on a Driver (any Driver, not a specific one) and default it to anyone.
If anyone wants more in the way of permission structure they will have to explain, cause I certainly can't see much more (esp once I make sure the Driver doesn't ignore charge right through any protected blocks :) )
@globnobulous
Noted on the turning off perm :) I'd actually forgotten about the breaking thing, it does somewhat make the "grant to turn off" thing rather pointless. I'll throw a couple of things into the milestone, probably just stick with the block protection and chunk load management (although from your comments on the issue I may just be proving to myself it works as-is ;) )
@Hitman4Hire
Already dealt with, will be fixed when the next release is sent up, just want to sort a few other things as well to include in the release :)
Perhaps the drill could actually spit out processed ores/blocks. It seems odd that ruthlessly drilling into stone gives you smooth stone, not cobble stone. Same thing with ores.
Can you maybe add permissions to use the machine?
@fyrenth
@fyrenth tell me when you want me to cut a new release. I've put a milestone in github that you can tie issues to.
it also needs coal redstone and gold + there must be 3 spots open in chest eles it cant make the things
@globnobulous
The last merge I did gets who (I even changed the start log entry to say who started the driver in which direction), location using the reference block should be easy enough on top of that though.
I'd actually be interested to know if people would like any other admin commands to go with this, like being able to stop all the drivers for a player (as I've added a method for this to cover off a Player's started drivers stopping when they quit), or just an emergency "halt" on all Drivers running (again, not hard to add I would expect).
The concerns about world protection, now I have a player in context to a running driver, I'm going to try and address next (if the player doesn't have the right, nor does thier started driver) and I'll throw in a permission for starting any driver in at the same time :)
Permission to build a driver isn't really that viable, since its just a bunch of blocks until you flip the switch, so permission for turning on makes more sense (which also makes me wonder, who should have the rights to turn it off? Just the person who started it and Ops? Or anyone? Sounds like I've talked myself into another permission node)
Samkio & Torrent have produced a great demo video of the RailDriver in action over on WoopaGaming.
@rockyct
It does log when, but not where. Hmmm.
This sounds like a very cool plugin. I'm tempted to use it but before I do I want to make sure I can find out who may cause one of these tunnelers to go through a building or something. I know region protections would be difficult, but maybe if it logged every time a player used this, and it's start and stop locations. I'm ok with it not respecting regions as long as I can easily find out who caused it to tunnel into a house.
@globnobulous
SOOO glad to see this plugin again, thank you!
@fyrenth
That'd be perfect fyrenth. How about we take this discussion over to the github issues page. I'll add you to the project and we can hash out any ideas you have.
@globnobulous
As I find your plugin interesting and useful, I'd be happy to help field some of the feature requests, while I also don't have a huge abundance of time, I do have some spare to add some of them but would like to keep inline with any aims/designs you were applying to the plugin. If you want to let me know if you would like me to keep within any particular guidelines for your plugin, I'll take a stab at couple or things or throw a few implementation ideas at you to see how you feel about it (also if you just want me to throw stuff at the github issues page for discussion :)
@Paperclip45
What happens when you throw the switch?
@BONNe1704
Please see my post below. I unfortunately don't have time to add major features right now.
Um a great plugin I've seen it on public servers but I can't get the raildriver to run.
@Paperclip45
LINK
Use download link on top of page :D
Oh and also just because I'm new to bukkit forums don't ignore me it's pointless