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

Qanthelas

Members
  • Content Count

    3
  • Joined

  • Last visited

Posts posted by Qanthelas

  1. 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.

  2. Thanks for the post!  I'm trying to come up with a way to map out an area with a robot using the new component.geolyzer.analyze() function so that we can give the robot a specific block name to search for and go to.  I've been looking at this code from Akuukis and now it's really helpful for me to compare it with yours, so thanks for posting!  Am I correct in reading your code that the way you plot your map to see which blocks are air and which are not is simply by trying to move there and reading the error message that comes up if the block isn't air?  The nav.lua from Akuukis uses robot.detect() to plot out the blocks around it, that's why I ask.

×
×
  • Create New...

Important Information

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