diff --git a/excaver.lua b/excaver.lua index b019800117238e1c2ae90740f3a7ae9cf4e6ca06..9e45b816670a40d06bdbb55fdf9432b90124dce6 100644 --- a/excaver.lua +++ b/excaver.lua @@ -24,27 +24,26 @@ function RSI_Excavatrice:init() return excavatrice end + --- -- \brief Affiche la position et l'orientation de l'excavatrice function RSI_Excavatrice:print() + print("Type excavatrice.") self.base_:print() end ---- --- \brief Abattre un arbre --- \return bool Succès ---function RSI_Excavatrice:chopTree() - --TODO: Implementer ---end --- -- \brief Dégager la zone vers le bas --- \param int nLignes Nombre de lignes --- \param int nColonnes Nombre de colonnes --- \param int nLignes Profondeur z (vers le bas) sur laquelle excaver +-- \param int lines Nombre de lignes +-- \param int cols Nombre de colonnes +-- \param int depth Profondeur z (vers le bas) sur laquelle excaver -- \return bool Succès -function RSI_Excavatrice:main(nLignes, nColonnes, profondeur) - --TODO: Implementer +function RSI_Excavatrice:excavateVolumeDown(lines, cols, depth) + --TODO: Refuel quand < 100 + --TODO: Vider l'inventaire quand on a ramassé un truc et qu'il n'y a plus + -- de cases libres + return self.base_:goThroughVolume(lines, cols, depth, turtle.digDown) end return RSI_Excavatrice diff --git a/rsiTurtle.lua b/rsiTurtle.lua index 30c5dff0ec079d82c54073295d708a31794d63ea..b65a2565387ef4448b1182dfb8221f39dac12e02 100644 --- a/rsiTurtle.lua +++ b/rsiTurtle.lua @@ -722,4 +722,27 @@ function RSI_Turtle:refuelUntil(fuelLevel, fuelChestSlot) return false end + +--- +-- \brief Place le contenu de l'inventaire dans un conteneur devant soit +-- (ou le balance par terre s'il n'y a aucun bloc de stockage) +-- Agit sur un intervalle de cases de l'inventaire +-- ex: 1,4 va prendre les cases d'inventaire 1, 2, 3, et 4 +-- \param int firstSlot Brûler du carburant jusqu'à ce que le tortue +-- atteigne le niveau spécifié +-- \param int lastSlot Case de l'inventaire contenant un ender chest +-- contenant du carburant +-- \return bool Succès +function RSI_Turtle:dumpInventory(firstSlot, lastSlot) + local success + + for i=firstSlot, lastSlot, 1 + do + turtle.select(i) + success = turtle.drop() or (turtle.getItemCount() == 0) + if (not success) then return false end + end + return true +end + return RSI_Turtle diff --git a/test.lua b/test.lua index 6daecf9d376922f1073871acddfb4b019766d96c..fcdb33526c1e2bde532430ecba8e4f9693e1349d 100644 --- a/test.lua +++ b/test.lua @@ -190,14 +190,17 @@ end --assert(e:excavateVolumeDown(2,2,3)) --assert(e:excavateVolumeDown(10,10,68)) Attention: prend des heures -print("Test refuelUntil") -assert(e.base_:refuelUntil(FUEL_FULL, SLOT_ENDERCHEST_FUEL)) -print("Fuel level after refueling:") -print(turtle.getFuelLevel()) -assert(turtle.getFuelLevel() >= FUEL_FULL) - -assert(e.base_:moveToOrigin()) -print(e.base_:getPos()) +-- print("Test refuelUntil") +-- assert(e.base_:refuelUntil(FUEL_FULL, SLOT_ENDERCHEST_FUEL)) +-- print("Fuel level after refueling:") +-- print(turtle.getFuelLevel()) +-- assert(turtle.getFuelLevel() >= FUEL_FULL) + +print("Test dumpInventory") +assert(e.base_:dumpInventory(3, 12)) + +-- assert(e.base_:moveToOrigin()) +-- print(e.base_:getPos()) print("Fin des tests")