From 488729ac9eb0db52e0ba54d1f6f0551a4688cb4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9tro?= <yann.roberge@polymtl.ca> Date: Sun, 1 Nov 2020 22:06:16 -0500 Subject: [PATCH] Ajout de dumpInventaire --- excaver.lua | 21 ++++++++++----------- rsiTurtle.lua | 23 +++++++++++++++++++++++ test.lua | 19 +++++++++++-------- 3 files changed, 44 insertions(+), 19 deletions(-) diff --git a/excaver.lua b/excaver.lua index b019800..9e45b81 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 30c5dff..b65a256 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 6daecf9..fcdb335 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") -- GitLab