SHOW:
|
|
- or go back to the newest paste.
| 1 | --[[ | |
| 2 | Auflistung Materialien: | |
| 3 | 01 Fußboden innen: 40 | |
| 4 | 02 Fußboden Veranda: 6 | |
| 5 | - | 03 Treppen Veranda: 9 |
| 5 | + | 03 Halfsteps: 44 |
| 6 | 04 Sockel: 26 | |
| 7 | 05 Wände Typ 1: 63 | |
| 8 | 06 Wände Typ 2: 46 | |
| 9 | 07 Fenster: 15 | |
| 10 | 08 Türen: 1 | |
| 11 | 09 Trittplatte: 1 | |
| 12 | 10 Craftingtable: 1 | |
| 13 | 11 Truhen: 2 | |
| 14 | - | 12 Fackeln: 4 |
| 14 | + | 12 Fackeln: 9 |
| 15 | - | 13 Öfen: 5 |
| 15 | + | 13 Öfen: 4 |
| 16 | 14 Dach: 64 | |
| 17 | 15 Dach: 48 | |
| 18 | 16 Giebel: 10 | |
| 19 | ||
| 20 | http://pastebin.com/J4bcwtGy | |
| 21 | ||
| 22 | ||
| 23 | ||
| 24 | Minecraft Turtle: Simple House | |
| 25 | 2013-12-13 (c) psychedelixx / thebiglebowski33 | |
| 26 | ||
| 27 | Builds a simple house | |
| 28 | ||
| 29 | Usage: | |
| 30 | - use turtle and type "label set <name>" | |
| 31 | (to give your turtle an unique name so it remembers its programs) | |
| 32 | - type "pastebin get J4bcwtGy house" | |
| 33 | --]] | |
| 34 | ||
| 35 | --[[ --- Konstanten --- ]]-- | |
| 36 | dirCounter = 1 | |
| 37 | ||
| 38 | countList={}
| |
| 39 | keyFloorIn = "1" | |
| 40 | keyFloorOut = "2" | |
| 41 | - | keyStairsOut = "3" |
| 41 | + | halfSteps = "3" |
| 42 | keySocket = "4" | |
| 43 | keyWalls1 = "5" | |
| 44 | keyWalls2 = "6" | |
| 45 | keyWindows = "7" | |
| 46 | keyDoors = "8" | |
| 47 | keyPressPlate = "9" | |
| 48 | keyCraftTable = "10" | |
| 49 | keyChests = "11" | |
| 50 | keyTorches = "12" | |
| 51 | keyFurnaces = "13" | |
| 52 | keyRoof1 = "14" | |
| 53 | keyRoof2 = "15" | |
| 54 | keyGable = "16" | |
| 55 | ||
| 56 | countList[keyFloorIn] = 40 | |
| 57 | countList[keyFloorOut] = 6 | |
| 58 | - | countList[keyStairsOut] = 9 |
| 58 | + | countList[halfSteps] = 44 |
| 59 | countList[keySocket] = 26 | |
| 60 | countList[keyWalls1] = 63 | |
| 61 | countList[keyWalls2] = 46 | |
| 62 | countList[keyWindows] = 15 | |
| 63 | countList[keyDoors] = 1 | |
| 64 | countList[keyPressPlate] = 1 | |
| 65 | countList[keyCraftTable] = 1 | |
| 66 | countList[keyChests] = 2 | |
| 67 | - | countList[keyTorches] = 4 |
| 67 | + | countList[keyTorches] = 9 |
| 68 | - | countList[keyFurnaces] = 5 |
| 68 | + | countList[keyFurnaces] = 4 |
| 69 | countList[keyRoof1] = 64 | |
| 70 | countList[keyRoof2] = 48 | |
| 71 | countList[keyGable] = 10 | |
| 72 | ||
| 73 | --[[ | |
| 74 | for key, value in pairs(countList) do | |
| 75 | print (key, " = " , value) | |
| 76 | end | |
| 77 | ]]-- | |
| 78 | ||
| 79 | --[[ --- Parameter ---- ]]-- | |
| 80 | local args = { ... }
| |
| 81 | if #args < 1 then | |
| 82 | print("")
| |
| 83 | end | |
| 84 | --[[arg1 = tonumber(args[1])]]-- | |
| 85 | ||
| 86 | --[[ --- Item Check --- ]]-- | |
| 87 | function enoughResources() | |
| 88 | for key, value in pairs(countList) do | |
| 89 | if turtle.getItemCount(tonumber(key)) < value then | |
| 90 | return false | |
| 91 | end | |
| 92 | end | |
| 93 | return true | |
| 94 | end | |
| 95 | ||
| 96 | function calcFuel(blueprint) | |
| 97 | return #blueprint*#blueprint[1]*#blueprint[1][1] | |
| 98 | end | |
| 99 | ||
| 100 | function turn() | |
| 101 | if dirCounter%2 == 1 then | |
| 102 | t.right() | |
| 103 | t.forward() | |
| 104 | t.right() | |
| 105 | else | |
| 106 | t.left() | |
| 107 | t.forward() | |
| 108 | t.left() | |
| 109 | end | |
| 110 | ||
| 111 | dirCounter = dirCounter + 1 | |
| 112 | end | |
| 113 | ||
| 114 | function buildHouse(blueprint) | |
| 115 | ||
| 116 | t.up() | |
| 117 | ||
| 118 | yMax = #blueprint | |
| 119 | y = 1 | |
| 120 | ||
| 121 | while y <= #blueprint do | |
| 122 | zMax = #blueprint[y] | |
| 123 | z = 1 | |
| 124 | ||
| 125 | while z <= zMax do | |
| 126 | xMax = #blueprint[y][z] | |
| 127 | ||
| 128 | if dirCounter%2 == 1 then | |
| 129 | x = 1 | |
| 130 | else | |
| 131 | x = xMax | |
| 132 | end | |
| 133 | ||
| 134 | while (x <= xMax and dirCounter%2 == 1) | |
| 135 | or (x >= 1 and dirCounter%2 == 0) do | |
| 136 | slot = blueprint[y][z][x] | |
| 137 | ||
| 138 | print("x: ", x, "/", xMax, " - ",
| |
| 139 | "z: ", z, "/", zMax, " - ", | |
| 140 | "y: ", y, "/", yMax, " - ", | |
| 141 | "slot: ", slot) | |
| 142 | ||
| 143 | if slot > 0 then | |
| 144 | ||
| 145 | if turtle.getItemCount(slot) == 0 and | |
| 146 | slot == 14 then | |
| 147 | slot = 15 | |
| 148 | end | |
| 149 | if slot == 13 then | |
| 150 | t.left() | |
| 151 | end | |
| 152 | ||
| 153 | t.placeDown(slot) | |
| 154 | ||
| 155 | if slot == 13 then | |
| 156 | t.right() | |
| 157 | end | |
| 158 | end | |
| 159 | if (x < xMax and dirCounter%2 == 1) | |
| 160 | or(x > 1 and dirCounter%2 == 0) then | |
| 161 | t.forward() | |
| 162 | end | |
| 163 | ||
| 164 | if dirCounter%2 == 1 then | |
| 165 | x = x+1 | |
| 166 | else | |
| 167 | x = x-1 | |
| 168 | end | |
| 169 | end | |
| 170 | ||
| 171 | if z < zMax then | |
| 172 | turn() | |
| 173 | end | |
| 174 | z = z+1 | |
| 175 | end | |
| 176 | ||
| 177 | if y < yMax then | |
| 178 | driveToStartPos(blueprint, y) | |
| 179 | else | |
| 180 | t.forward() | |
| 181 | for y = 1, yMax, 1 do | |
| 182 | t.down() | |
| 183 | end | |
| 184 | print("Finished!")
| |
| 185 | print("All your base are belong to us")
| |
| 186 | end | |
| 187 | y = y+1 | |
| 188 | end | |
| 189 | end | |
| 190 | ||
| 191 | --[[ Funktion Rückfahrt: ]]-- | |
| 192 | function driveToStartPos(array, y) | |
| 193 | print("Driving to start position")
| |
| 194 | if dirCounter%2 == 0 then | |
| 195 | t.right() | |
| 196 | else | |
| 197 | t.right() | |
| 198 | t.right() | |
| 199 | for x = 1, #array[y][#array[y]]-1, 1 do | |
| 200 | t.forward() | |
| 201 | end | |
| 202 | t.right() | |
| 203 | end | |
| 204 | ||
| 205 | for z = 1, #array[y]-1, 1 do | |
| 206 | t.forward() | |
| 207 | end | |
| 208 | ||
| 209 | t.right() | |
| 210 | t.up() | |
| 211 | dirCounter = 1 | |
| 212 | end | |
| 213 | ||
| 214 | function start() | |
| 215 | if enoughResources() or 1 == 1 then | |
| 216 | print("forwards, to the moon, alice")
| |
| 217 | ||
| 218 | t.forward(12) | |
| 219 | t.right() | |
| 220 | layer = {}
| |
| 221 | --[[ | |
| 222 | layer[1] = {{1, 1, 1,1},
| |
| 223 | {1, 2, 2,1},
| |
| 224 | {1, 2, 2,1},
| |
| 225 | {1, 1, 1,1}}
| |
| 226 | layer[2] = {{2, 2, 2, 2},
| |
| 227 | {2, 1, 1, 2},
| |
| 228 | {2, 1, 1, 2},
| |
| 229 | {2, 2, 2, 2}}
| |
| 230 | ]]-- | |
| 231 | ||
| 232 | ||
| 233 | layer[1] = {{ 0, 6, 4, 4, 4, 4, 4, 6, 0},
| |
| 234 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 235 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 236 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 237 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 238 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 239 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 240 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 241 | { 0, 4, 1, 1, 1, 1, 1, 4, 0},
| |
| 242 | { 0, 6, 4, 2, 4, 4, 4, 6, 0},
| |
| 243 | { 0, 3, 2, 2, 2, 2, 2, 3, 0},
| |
| 244 | - | { 0, 5, 0, 9,11,11,10, 5, 0},
|
| 244 | + | |
| 245 | ||
| 246 | layer[2] = {{ 0, 6, 5, 5, 5, 5, 5, 6, 0},
| |
| 247 | { 0, 5,13,13,13,13, 1, 5, 0},
| |
| 248 | { 0, 5, 0, 0, 0, 0, 1, 5, 0},
| |
| 249 | { 0, 5, 0, 0, 0, 0, 1, 5, 0},
| |
| 250 | { 0, 5, 0, 0, 0, 0, 0, 5, 0},
| |
| 251 | { 0, 5, 0, 0, 0, 0, 0, 5, 0},
| |
| 252 | { 0, 5, 0, 0, 0, 0, 0, 5, 0},
| |
| 253 | { 0, 5, 0, 0, 0, 0, 0, 5, 0},
| |
| 254 | { 0, 5, 0, 9, 0, 0,10, 5, 0},
| |
| 255 | { 0, 6, 5, 8, 5, 5, 5, 6, 0}}
| |
| 256 | ||
| 257 | layer[3] = {{ 0, 6, 5, 7, 7, 7, 5, 6, 0},
| |
| 258 | { 0, 5, 0, 0, 0,12, 1, 5, 0},
| |
| 259 | { 0, 5,12, 0, 0, 0, 1, 5, 0},
| |
| 260 | { 0, 7, 0, 0, 0, 0, 0, 7, 0},
| |
| 261 | { 0, 7, 0, 0, 0, 0, 0, 7, 0},
| |
| 262 | { 0, 7, 0, 0, 0, 0, 0, 7, 0},
| |
| 263 | { 0, 7, 0, 0, 0, 0, 0, 7, 0},
| |
| 264 | { 0, 5, 0, 0, 0, 0,12, 5, 0},
| |
| 265 | { 0, 5,12, 0, 0, 0, 0, 5, 0},
| |
| 266 | { 0, 6, 5, 0, 7, 7, 5, 6, 0},
| |
| 267 | { 0, 0,12, 0, 0, 0, 0, 0, 0}}
| |
| 268 | ||
| 269 | layer[4] = {{ 0, 6, 5, 5, 5, 5, 5, 6, 0},
| |
| 270 | { 0, 5, 3, 3, 3, 3, 1, 5, 0},
| |
| 271 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 271 | + | |
| 272 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 272 | + | |
| 273 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 273 | + | |
| 274 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 274 | + | |
| 275 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 275 | + | |
| 276 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 276 | + | |
| 277 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 277 | + | |
| 278 | - | {14, 0, 0, 0, 0, 0, 0, 0,14},
|
| 278 | + | |
| 279 | ||
| 280 | layer[5] = {{14, 6, 6, 6, 6, 6, 6, 6,14},
| |
| 281 | - | layer[6] = {{ 0,14, 6, 6, 6, 6, 6,14, 0},
|
| 281 | + | {14,14,11, 0, 0, 0, 0, 0,14},
|
| 282 | {14,14,11, 0, 0, 0, 0, 0,14},
| |
| 283 | {14,14, 0, 0, 0, 0, 0, 0,14},
| |
| 284 | {14,14,11, 0, 0, 0, 0, 0,14},
| |
| 285 | {14,14,11, 0, 0, 0, 0, 0,14},
| |
| 286 | {14,14, 0, 0, 0, 0, 0, 0,14},
| |
| 287 | {14,14,11, 0, 0, 0, 0, 0,14},
| |
| 288 | {14,14,11, 0, 0, 0, 0, 0,14},
| |
| 289 | {14, 6, 6, 6, 6, 6, 6, 6,14}}
| |
| 290 | - | { 0,14, 6, 6, 6, 6, 6,14, 0}}
|
| 290 | + | |
| 291 | layer[6] = {{ 0,14, 6, 6, 7, 6, 6,14, 0},
| |
| 292 | - | layer[7] = {{ 0, 0,14, 6, 7, 6,14, 0, 0},
|
| 292 | + | |
| 293 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 294 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 295 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 296 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 297 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 298 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 299 | { 0,14, 0, 0, 0, 0, 0,14, 0},
| |
| 300 | { 0,14, 6, 6, 7, 6, 6,14, 0}}
| |
| 301 | - | { 0, 0,14, 6, 7, 6,14, 0, 0}}
|
| 301 | + | |
| 302 | layer[7] = {{ 0, 0,14, 6, 6, 6,14, 0, 0},
| |
| 303 | { 0, 0,14, 0, 0, 0,14, 0, 0},
| |
| 304 | { 0, 0,14,12, 0, 0,14, 0, 0},
| |
| 305 | { 0, 0,14, 0, 0,12,14, 0, 0},
| |
| 306 | { 0, 0,14, 0, 0, 0,14, 0, 0},
| |
| 307 | { 0, 0,14, 0, 0, 0,14, 0, 0},
| |
| 308 | { 0, 0,14,12, 0, 0,14, 0, 0},
| |
| 309 | { 0, 0,14, 0, 0,12,14, 0, 0},
| |
| 310 | { 0, 0,14, 0, 0, 0,14, 0, 0},
| |
| 311 | { 0, 0,14, 6, 6, 6,14, 0, 0}}
| |
| 312 | ||
| 313 | layer[8] = {{ 0, 0, 0,14, 6,14, 0, 0, 0},
| |
| 314 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 315 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 316 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 317 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 318 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 319 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 320 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 321 | { 0, 0, 0,14, 0,14, 0, 0, 0},
| |
| 322 | { 0, 0, 0,14, 6,14, 0, 0, 0}}
| |
| 323 | ||
| 324 | layer[9] = {{ 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 325 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 326 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 327 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 328 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 329 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 330 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 331 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 332 | { 0, 0, 0, 0,16, 0, 0, 0, 0},
| |
| 333 | { 0, 0, 0, 0,16, 0, 0, 0, 0}}
| |
| 334 | ||
| 335 | if turtle.getFuelLevel() < calcFuel(layer) then | |
| 336 | print("Amount of missing fuel: ", calcFuel(layer)-turtle.getFuelLevel())
| |
| 337 | print("Missing fuel in coal: ", calcFuel(layer)-turtle.getFuelLevel()/80+1)
| |
| 338 | print("Fill fuel in slot 1, type 'refuel <amount>' and try again")
| |
| 339 | error() | |
| 340 | end | |
| 341 | ||
| 342 | buildHouse(layer) | |
| 343 | else | |
| 344 | print("Not enough Resources")
| |
| 345 | end | |
| 346 | end | |
| 347 | ||
| 348 | ||
| 349 | print("======== 2013 (c) psy & lebo ==========")
| |
| 350 | print("======== Simple House Builder =========")
| |
| 351 | ||
| 352 | start() |