Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • 0
Qanthelas

Navigation Module that Can Find Specific Blocks by Name

Question

Description:

I want to write robot programs that can be easily transfered to other OC users without them having to set things up exactly the same way I do.  With this in mind, I want a robot navigation program that can 'map' the blocks around the robot.

 

Function:

 

The idea here is a navigation program for a robot that allows it to map out the area around it and then look for specific blocks by item name.  Likely this would use the Navigation Ugrade to find the area to map out and the new (currently part of the 1.4 beta 2 and dev builds) component.geolyzer.analyze() funtion.  The basic ideas of the nav.lua program, perhaps with some modifications from the program with a simliar idea called nibnav.lua, could likely be used to handle the basics of plotting out a map of the blocks around the robot and navigation to a specific location.

 

The part that needs to be done is to add in support for component.geolyzer.analyze() to give a detailed plot of points map (rather than just the basic robot.detect() information like solid or air) and a search function that could be used to look for a specific block in the map data to yield a coordinate to go to.

 

Ideally this mapping could be run once (and called again if an update needs to be made, like we added or removed some blocks in that area) but then stored so other programs could call something like .goToBlock([item name], [meta data]), causing the robot to navigate itself to a block that matches that description in its mapped area.  I'm less concerned about how it handles multiples of the same block (like how to tell it to take from one chest but drop into a second chest), but perhaps some sort of optional count number in that function would be useful for that case, like .goToBlock([item name], [meta data], 2) to navigate to 2nd chest in the mapped area.

 

Deadline:

  I don't feel in any position to make a demand for a certain timeframe.

 

Additional Information:

  The component.geolyzer.analyze() yields both item name and meta data, and for some mods like Minefactory Reloaded the core blocks are just variations of the same item name with different meta data (like a Planter and a Harvester share a block name with different item ID.)  Thus I think it might be best to store both block name and meta data in the plot of points that the robot makes.

Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.