Forum du serveur Computercraft FR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

[Creative] TreeMgr - Utilitaire pour arbres

Aller en bas

[Creative] TreeMgr - Utilitaire pour arbres Empty [Creative] TreeMgr - Utilitaire pour arbres

Message par skypop Mer 17 Aoû - 17:34

Requiert un Command Computer.

http://pastebin.com/BdYe76ug
Code:
pastebin get BdYe76ug treeMgr

Utilitaire pour gérer les arbres plus facilement, pendant la conception de plantations, fermes à arbres, tortues bucheron, etc.
Il permet de supprimer les arbres d'un chunk en un clic de souris, ou au choix supprimer les bûches ou les feuilles (sans drop d'items).

Fonctionalités :

  • chunk : place un bloc de redstone aux 4 coins du chunk (à la même altitude que le command computer)  juste pour s'assurer que le programme s'executera au bon endroit. Recliquer dessus retirera les 4 blocs de redstone (nb: remplacés par le l'air, ça ne retaurera pas le bloc d'origine s'il y en avait un)
  • give saplings/bonemeal : Distribue un sapling de chaque espèce et une unité de poudre d'os (bone meal)
  • clear trees : supprime tous les arbres du chunk
  • clear leaves : supprime tous les blocs de feuille, sans drop de sapling ou pommes
  • clear logs : supprime toutes les bûches


Mode d'emploi :
Posez un command computer dans le chunk, installez le programme et lancez le.
Tout d'abord, les coordonnées du chunk seront affichés à l'écran de x1 à x2, y1 à y2 et z1 à z2. Pressez n'importe quelle touche pour continuer.
S'affiche le menu, plus qu'à cliquer sur la fonction souhaitée. Pressez T pour terminer le programme.

Modifier les coordonnées :
Elles s'adaptent automatiquement au chunk dans lequel est posé le command computer.
Par défaut, la zone nettoyée sera des positions relatives 0 à 15 du chunk sur les axes Est~Ouest / Nord~Sud (-x ~ +x / -z ~ +z) et sur une hauteur allant du bloc sous le command computer et 90 blocs au dessus (donc sur 92 blocs de haut)

Ces coordonnées sont définies à partir de la ligne 20 du programme. à la ligne 19 aux variables x,y,z sont attribué les coordonnées absolues du command computer.
Code:
x,y,z = commands.getBlockPosition()
x1,z2 = x-(x%16), z-(z%16)
x2,z2 = x1+15, z1+15
y1,y2 = math.max(1,y-1), math.min(255,y+90)

Dans le détail de ce charabia :
x-(x%16) C'est la coordonnée absolue X moins son modulo de 16, ce qui donne la valeur absolue du bord du chunk.
x1+15 Pour la coordonnée x2, j'ajoute 15 et non 16, car il s'agit bien d'une largeur de 16 mais il faut compter en partant de zéro. x1+16 c'est la coordonnée absolue du bord du chunk voisin.
math.max(1,y-1) La hauteur initiale part d'un bloc sous le command computer. Mais au cas où vous seriez descendu au niveau de la bedrock (wtf?) elle n'ira pas en dessous de l'altitude Y==1. Idem pour la limite haute, je l'ai bloqué à 255

Si vous souhaitez étendre cette zone d'action, rajoutez à la suite un calcul de ce style :
Code:
x1,x2 = x1-16,x2+16
z1,z2 = z1-16,z2+16
y2 = y2 + 32
Ici j'ai étendu la zone d'action à 9 chunks (3x3), c'est à dire +1 chunk sur les axes négatifs (-16), +1 chunk sur les axes positifs (+16) Et augmenté l'altitude de 32 blocs.

NB: Ces fonctionnalités sont basées sur la commande "fill" qui est limitée à un certain nombre de blocs (32768). Si la zone d'action est trop étendue elle ne s’exécutera pas, et un message d'erreur apparaîtra dans le chat.

J'ai développé ce programme dans l'ambition de concevoir une turtle capable de débiter n'importe quel arbre. Avec la fonction "clear leaves" je peux visualiser rapidement la structure biscornue des acacias, ou l'ampleur des arbres géants. Si jamais la turtle foire son test, je pourrais facilement nettoyer la zone pour voir ce qui cloche ou retenter le coups sur un arbre tout neuf.

Note: on pourrait facilement étendre les fonctions aux champignons géants, si besoin. Dans la fonction clearlogs() rajouter ces quelques lignes :
Code:
   commands.fill(x1,y1,z1,x2,y2,z2,"minecraft:air",0,"replace","minecraft:brown_mushroom_block")
   sleep(delay)
   commands.fill(x1,y1,z1,x2,y2,z2,"minecraft:air",0,"replace","minecraft:red_mushroom_block")
   sleep(delay)
skypop
skypop

Messages : 95
Date d'inscription : 25/07/2016

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum