- SukaiPoppuGo
[Projet] Nether smeltry
Jeu 11 Oct - 12:56
Voici une idée de design pour installer une fonderie dans le Nether sur le rivage d'un océan de lave.
Dans les grandes lignes il s'agirait d'aligner 16 fours pour cuire en masse par paquets de 100 items (soit des fournées jusqu'à 1600 items)
Voici le principe. L'utilisateur dispose de deux coffres, un pour insérer les matériaux, l'autre pour récupérer le produit.
Un moniteur ferait office d'interface, pour afficher le compte, le délai, et un bouton pour lancer la fournée.
Le controleur collabore avec la turtle, mais pour l'essentiel gère le transit et la répartition des items.
Un seau de lave peut cuire jusqu'à 100 items, ils seraient donc répartis par tranches de 100 dans chaque four. (Cuire 300 items mobiliserait 3 fours, je suis défavorable à une répartition équitable, car cela gaspille le fuel)
La turtle est avertie par un signal via modem. Elle utiliserait son scanner pour repérer les blocs de lave, un algorithme de pathfinding la mènerait jusque là pour en ramasser 16 avec des seaux.
Une cartographie de l'océan de lave serait mise à jour (action combinée du scanner et du GPS) pour éviter les trajets inutiles.
Lorsque la turtle dépasse une certaine portée, elle passerait au palier suivant (vers le fond de l'océan). Récolter par palier, permettrait de minimiser les updates provoqués par l'écoulement de la lave.
De retour à la station, elle décharge ses seaux de laves, récupère 16 seaux vides et attend le prochain signal
Le controleur répartit les seaux de lave dans chacun des fours, et rapatrie les seaux vides à la station.
En parallèle de ça, la turtle veille à son propre niveau de fuel. Quand c'est nécessaire elle se fera un petit shooter de lave pour se requinquer
Reste à voir le mode de transfert d'items. Probablement un réseau de dropper pilots via un wired network par le controleur
Au sujet de mon à-priori sur le gaspillage de fuel : Je ne conçoit pas qu'on brule 16 seaux de lave juste pour s'épargner de patienter 10min à la cuisson d'un stack.
Mais j'exclue pas pour autant le principe pour réduire le temps. Pour ça il faudrait croiser ce design avec une ferme à bois, et ajouter une couche d'intelligence au programme du controleur pour choisir le combustible le plus approprié. Un tel programme demanderait bien un ou deux jours de développement et de tests supplémentaire, pour épargner un maximum de 8min d'attente. Étant donné que ce design nécessiterait de faire un aller-retour dans le Nether (un trajet qui pourrait bien prendre 10min), j'ai pas l'impression que ça en vaille la peine.
Un système de cuisson express n'est intéressant que dans la mesure où il se situerai dans sa base, ou relié à un de ses propres systèmes.
Dans les grandes lignes il s'agirait d'aligner 16 fours pour cuire en masse par paquets de 100 items (soit des fournées jusqu'à 1600 items)
Voici le principe. L'utilisateur dispose de deux coffres, un pour insérer les matériaux, l'autre pour récupérer le produit.
Un moniteur ferait office d'interface, pour afficher le compte, le délai, et un bouton pour lancer la fournée.
Le controleur collabore avec la turtle, mais pour l'essentiel gère le transit et la répartition des items.
Un seau de lave peut cuire jusqu'à 100 items, ils seraient donc répartis par tranches de 100 dans chaque four. (Cuire 300 items mobiliserait 3 fours, je suis défavorable à une répartition équitable, car cela gaspille le fuel)
La turtle est avertie par un signal via modem. Elle utiliserait son scanner pour repérer les blocs de lave, un algorithme de pathfinding la mènerait jusque là pour en ramasser 16 avec des seaux.
Une cartographie de l'océan de lave serait mise à jour (action combinée du scanner et du GPS) pour éviter les trajets inutiles.
Lorsque la turtle dépasse une certaine portée, elle passerait au palier suivant (vers le fond de l'océan). Récolter par palier, permettrait de minimiser les updates provoqués par l'écoulement de la lave.
De retour à la station, elle décharge ses seaux de laves, récupère 16 seaux vides et attend le prochain signal
Le controleur répartit les seaux de lave dans chacun des fours, et rapatrie les seaux vides à la station.
En parallèle de ça, la turtle veille à son propre niveau de fuel. Quand c'est nécessaire elle se fera un petit shooter de lave pour se requinquer
Reste à voir le mode de transfert d'items. Probablement un réseau de dropper pilots via un wired network par le controleur
Au sujet de mon à-priori sur le gaspillage de fuel : Je ne conçoit pas qu'on brule 16 seaux de lave juste pour s'épargner de patienter 10min à la cuisson d'un stack.
Mais j'exclue pas pour autant le principe pour réduire le temps. Pour ça il faudrait croiser ce design avec une ferme à bois, et ajouter une couche d'intelligence au programme du controleur pour choisir le combustible le plus approprié. Un tel programme demanderait bien un ou deux jours de développement et de tests supplémentaire, pour épargner un maximum de 8min d'attente. Étant donné que ce design nécessiterait de faire un aller-retour dans le Nether (un trajet qui pourrait bien prendre 10min), j'ai pas l'impression que ça en vaille la peine.
Un système de cuisson express n'est intéressant que dans la mesure où il se situerai dans sa base, ou relié à un de ses propres systèmes.
- SukaiPoppuGo
Re: [Projet] Nether smeltry
Sam 13 Oct - 9:43
Codes utiles
(à tester)Explorer le contenu d'un coffre, obtenir le total d'items contenus
- Code:
local chest = peripheral.wrap(side) -- ou peripheral.find("minecraft:chest")
local total = 0
local inv = {} -- Total par items de même type
for slot, item in pairs(chest.list()) do
local tag = item.name..":"..item.damage
inv[tag] = inv[tag] and inv[tag] + item.count or item.count
total = total + item.count
end
print("total:", total)
Déplacer des items par module de 100 (nécessiterait de pré-filtrer les items compatibles)
- Code:
local dest = "south" -- à vérifier sur le terrain
local qty = total - (total%100)
while qty > 0 do
local chest = peripheral.wrap(side)
for slot, item in pairs(chest.list()) do
local moveQty = math.min(item.count, qty)
chest.pushItems(dest, slot, moveQty)
qty = qty - moveQty
if qty <= 0 then break end
end
end
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum