aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/Config.java22
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java95
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/IMCForNEI.java64
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/NEIPluginConfig.java35
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/PluginBase.java54
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java47
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java27
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java64
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java203
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5UndergroundFluid.java165
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java202
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java55
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java78
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java229
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java159
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java199
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java139
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java195
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/GT5UndergroundFluidHelper.java146
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/OreVeinLayer.java18
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java600
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/StringPaddingHack.java131
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java23
-rw-r--r--src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java33
-rw-r--r--src/main/resources/assets/gtneioreplugin/lang/en_US.lang101
-rw-r--r--src/main/resources/assets/gtneioreplugin/lang/zh_CN.lang95
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/An_back.pngbin0 -> 314 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/An_bottom.pngbin0 -> 305 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/An_front.pngbin0 -> 309 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/An_left.pngbin0 -> 311 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/An_right.pngbin0 -> 307 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/An_top.pngbin0 -> 308 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/As_back.pngbin0 -> 495 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/As_bottom.pngbin0 -> 554 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/As_front.pngbin0 -> 535 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/As_left.pngbin0 -> 527 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/As_right.pngbin0 -> 506 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/As_top.pngbin0 -> 548 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BC_back.pngbin0 -> 268 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BC_bottom.pngbin0 -> 280 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BC_front.pngbin0 -> 292 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BC_left.pngbin0 -> 262 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BC_right.pngbin0 -> 278 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BC_top.pngbin0 -> 254 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BE_back.pngbin0 -> 327 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BE_bottom.pngbin0 -> 329 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BE_front.pngbin0 -> 325 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BE_left.pngbin0 -> 322 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BE_right.pngbin0 -> 318 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BE_top.pngbin0 -> 317 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BF_back.pngbin0 -> 370 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BF_bottom.pngbin0 -> 393 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BF_front.pngbin0 -> 392 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BF_left.pngbin0 -> 386 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BF_right.pngbin0 -> 386 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/BF_top.pngbin0 -> 390 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/CB_back.pngbin0 -> 351 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/CB_bottom.pngbin0 -> 337 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/CB_front.pngbin0 -> 479 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/CB_left.pngbin0 -> 424 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/CB_right.pngbin0 -> 318 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/CB_top.pngbin0 -> 414 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_back.pngbin0 -> 301 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_bottom.pngbin0 -> 300 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_front.pngbin0 -> 301 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_left.pngbin0 -> 300 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_right.pngbin0 -> 316 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_top.pngbin0 -> 299 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_back.pngbin0 -> 343 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_bottom.pngbin0 -> 333 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_front.pngbin0 -> 330 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_left.pngbin0 -> 340 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_right.pngbin0 -> 335 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_top.pngbin0 -> 335 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/DD_back.pngbin0 -> 325 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/DD_bottom.pngbin0 -> 332 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/DD_front.pngbin0 -> 339 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/DD_left.pngbin0 -> 342 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/DD_right.pngbin0 -> 350 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/DD_top.pngbin0 -> 331 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/De_back.pngbin0 -> 259 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/De_bottom.pngbin0 -> 268 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/De_front.pngbin0 -> 259 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/De_left.pngbin0 -> 265 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/De_right.pngbin0 -> 263 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/De_top.pngbin0 -> 248 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/EA_back.pngbin0 -> 517 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/EA_bottom.pngbin0 -> 575 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/EA_front.pngbin0 -> 478 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/EA_left.pngbin0 -> 553 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/EA_right.pngbin0 -> 520 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/EA_top.pngbin0 -> 554 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/ED_back.pngbin0 -> 321 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/ED_bottom.pngbin0 -> 326 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/ED_front.pngbin0 -> 319 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/ED_left.pngbin0 -> 327 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/ED_right.pngbin0 -> 319 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/ED_top.pngbin0 -> 338 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/En_back.pngbin0 -> 452 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/En_bottom.pngbin0 -> 524 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/En_front.pngbin0 -> 392 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/En_left.pngbin0 -> 396 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/En_right.pngbin0 -> 410 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/En_top.pngbin0 -> 528 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_back.pngbin0 -> 497 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_bottom.pngbin0 -> 464 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_front.pngbin0 -> 517 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_left.pngbin0 -> 510 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_right.pngbin0 -> 481 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_top.pngbin0 -> 503 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_back.pngbin0 -> 510 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_bottom.pngbin0 -> 524 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_front.pngbin0 -> 457 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_left.pngbin0 -> 492 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_right.pngbin0 -> 490 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_top.pngbin0 -> 528 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_back.pngbin0 -> 402 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_bottom.pngbin0 -> 389 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_front.pngbin0 -> 398 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_left.pngbin0 -> 394 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_right.pngbin0 -> 398 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_top.pngbin0 -> 393 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_back.pngbin0 -> 268 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_bottom.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_front.pngbin0 -> 258 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_left.pngbin0 -> 261 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_right.pngbin0 -> 262 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_top.pngbin0 -> 265 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Io_back.pngbin0 -> 337 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Io_bottom.pngbin0 -> 342 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Io_front.pngbin0 -> 330 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Io_left.pngbin0 -> 340 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Io_right.pngbin0 -> 336 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Io_top.pngbin0 -> 340 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/KB_back.pngbin0 -> 463 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/KB_bottom.pngbin0 -> 465 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/KB_front.pngbin0 -> 455 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/KB_left.pngbin0 -> 447 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/KB_right.pngbin0 -> 475 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/KB_top.pngbin0 -> 493 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MB_back.pngbin0 -> 352 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MB_bottom.pngbin0 -> 466 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MB_front.pngbin0 -> 432 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MB_left.pngbin0 -> 444 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MB_right.pngbin0 -> 449 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MB_top.pngbin0 -> 408 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MM_back.pngbin0 -> 345 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MM_bottom.pngbin0 -> 335 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MM_front.pngbin0 -> 331 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MM_left.pngbin0 -> 348 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MM_right.pngbin0 -> 329 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/MM_top.pngbin0 -> 343 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_back.pngbin0 -> 341 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_bottom.pngbin0 -> 325 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_front.pngbin0 -> 305 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_left.pngbin0 -> 317 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_right.pngbin0 -> 325 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_top.pngbin0 -> 325 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Me_back.pngbin0 -> 338 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Me_bottom.pngbin0 -> 317 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Me_front.pngbin0 -> 331 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Me_left.pngbin0 -> 343 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Me_right.pngbin0 -> 311 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Me_top.pngbin0 -> 335 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_back.pngbin0 -> 309 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_bottom.pngbin0 -> 302 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_front.pngbin0 -> 307 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_left.pngbin0 -> 263 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_right.pngbin0 -> 250 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_top.pngbin0 -> 299 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_back.pngbin0 -> 283 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_bottom.pngbin0 -> 272 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_front.pngbin0 -> 275 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_left.pngbin0 -> 277 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_right.pngbin0 -> 277 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_top.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_back.pngbin0 -> 433 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_bottom.pngbin0 -> 360 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_front.pngbin0 -> 334 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_left.pngbin0 -> 309 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_right.pngbin0 -> 426 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_top.pngbin0 -> 341 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_back.pngbin0 -> 271 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_bottom.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_front.pngbin0 -> 286 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_left.pngbin0 -> 265 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_right.pngbin0 -> 287 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_top.pngbin0 -> 272 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Np_back.pngbin0 -> 254 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Np_bottom.pngbin0 -> 221 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Np_front.pngbin0 -> 254 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Np_left.pngbin0 -> 220 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Np_right.pngbin0 -> 203 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Np_top.pngbin0 -> 223 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_back.pngbin0 -> 282 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_bottom.pngbin0 -> 289 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_front.pngbin0 -> 290 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_left.pngbin0 -> 288 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_right.pngbin0 -> 286 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_top.pngbin0 -> 298 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_back.pngbin0 -> 600 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_bottom.pngbin0 -> 279 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_front.pngbin0 -> 358 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_left.pngbin0 -> 557 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_right.pngbin0 -> 547 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_top.pngbin0 -> 575 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_back.pngbin0 -> 316 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_bottom.pngbin0 -> 344 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_front.pngbin0 -> 332 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_left.pngbin0 -> 307 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_right.pngbin0 -> 327 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_top.pngbin0 -> 327 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_back.pngbin0 -> 384 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_bottom.pngbin0 -> 361 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_front.pngbin0 -> 384 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_left.pngbin0 -> 380 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_right.pngbin0 -> 389 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_top.pngbin0 -> 372 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_back.pngbin0 -> 395 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_bottom.pngbin0 -> 402 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_front.pngbin0 -> 396 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_left.pngbin0 -> 377 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_right.pngbin0 -> 416 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_top.pngbin0 -> 485 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_back.pngbin0 -> 588 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_bottom.pngbin0 -> 445 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_front.pngbin0 -> 548 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_left.pngbin0 -> 495 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_right.pngbin0 -> 518 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_top.pngbin0 -> 524 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_back.pngbin0 -> 481 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_bottom.pngbin0 -> 451 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_front.pngbin0 -> 486 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_left.pngbin0 -> 411 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_right.pngbin0 -> 460 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_top.pngbin0 -> 438 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Se_back.pngbin0 -> 330 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Se_bottom.pngbin0 -> 343 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Se_front.pngbin0 -> 339 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Se_left.pngbin0 -> 348 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Se_right.pngbin0 -> 342 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Se_top.pngbin0 -> 340 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TE_back.pngbin0 -> 402 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TE_bottom.pngbin0 -> 449 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TE_front.pngbin0 -> 459 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TE_left.pngbin0 -> 545 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TE_right.pngbin0 -> 511 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TE_top.pngbin0 -> 558 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TF_back.pngbin0 -> 379 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TF_bottom.pngbin0 -> 312 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TF_front.pngbin0 -> 337 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TF_left.pngbin0 -> 314 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TF_right.pngbin0 -> 393 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/TF_top.pngbin0 -> 271 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_back.pngbin0 -> 280 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_bottom.pngbin0 -> 264 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_front.pngbin0 -> 268 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_left.pngbin0 -> 267 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_right.pngbin0 -> 271 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_top.pngbin0 -> 251 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_back.pngbin0 -> 315 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_bottom.pngbin0 -> 329 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_front.pngbin0 -> 322 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_left.pngbin0 -> 331 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_right.pngbin0 -> 322 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_top.pngbin0 -> 314 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VA_back.pngbin0 -> 460 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VA_bottom.pngbin0 -> 539 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VA_front.pngbin0 -> 327 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VA_left.pngbin0 -> 526 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VA_right.pngbin0 -> 305 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VA_top.pngbin0 -> 441 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VB_back.pngbin0 -> 425 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VB_bottom.pngbin0 -> 390 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VB_front.pngbin0 -> 404 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VB_left.pngbin0 -> 382 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VB_right.pngbin0 -> 390 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/VB_top.pngbin0 -> 340 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_back.pngbin0 -> 295 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_bottom.pngbin0 -> 283 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_front.pngbin0 -> 285 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_left.pngbin0 -> 293 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_right.pngbin0 -> 275 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_top.pngbin0 -> 286 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/gui/nei/guiBase.pngbin0 -> 1846 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.pngbin0 -> 168 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.pngbin0 -> 164 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.pngbin0 -> 257 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.pngbin0 -> 236 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.pngbin0 -> 239 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.pngbin0 -> 169 bytes
-rw-r--r--src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.pngbin0 -> 1155 bytes
-rw-r--r--src/main/resources/mcmod.info22
293 files changed, 3196 insertions, 5 deletions
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/Config.java b/src/main/java/pers/gwyog/gtneioreplugin/Config.java
new file mode 100644
index 0000000000..8501ebabb1
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/Config.java
@@ -0,0 +1,22 @@
+package pers.gwyog.gtneioreplugin;
+
+import java.io.File;
+
+import net.minecraftforge.common.config.Configuration;
+
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+
+public class Config {
+
+ public final Configuration tConfig;
+
+ public Config(FMLPreInitializationEvent preinit, String cfgname) {
+ File tFile = new File(preinit.getModConfigurationDirectory(), cfgname);
+ tConfig = new Configuration(tFile);
+ tConfig.load();
+ }
+
+ public void save() {
+ if (tConfig.hasChanged()) tConfig.save();
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java
new file mode 100644
index 0000000000..f16fa148e0
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java
@@ -0,0 +1,95 @@
+package pers.gwyog.gtneioreplugin;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.Mod.EventHandler;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import pers.gwyog.gtneioreplugin.plugin.IMCForNEI;
+import pers.gwyog.gtneioreplugin.plugin.block.ModBlocks;
+import pers.gwyog.gtneioreplugin.util.CSVMaker;
+import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper;
+import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper;
+import pers.gwyog.gtneioreplugin.util.GT5UndergroundFluidHelper;
+
+@Mod(
+ modid = GTNEIOrePlugin.MODID,
+ name = GTNEIOrePlugin.NAME,
+ version = GTNEIOrePlugin.VERSION,
+ dependencies = "required-after:gregtech;required-after:NotEnoughItems")
+public class GTNEIOrePlugin {
+
+ public static final String MODID = "gtneioreplugin";
+ public static final String NAME = "GT NEI Ore Plugin GT:NH Mod";
+ public static final String VERSION = Tags.VERSION;
+ public static final Logger LOG = LogManager.getLogger(NAME);
+ public static boolean csv = false;
+ public static String CSVname;
+ public static String CSVnameSmall;
+ public static int maxTooltipLines = 11;
+ public static final CreativeTabs creativeTab = new CreativeTabs(MODID) {
+
+ @Override
+ public Item getTabIconItem() {
+ return GameRegistry.makeItemStack("gregtech:gt.blockores", 386, 1, null).getItem();
+ }
+ };
+
+ @Mod.Instance(MODID)
+ public static GTNEIOrePlugin instance;
+
+ @EventHandler
+ public void preinit(FMLPreInitializationEvent event) {
+ Config c = new Config(event, MODID + ".cfg");
+ csv = c.tConfig.getBoolean(
+ "print csv",
+ "ALL",
+ false,
+ "print csv, you need apache commons collections to be injected in the minecraft jar.");
+ CSVname = c.tConfig.getString(
+ "CSV_name",
+ "ALL",
+ event.getModConfigurationDirectory() + "/GTNH-Oresheet.csv",
+ "rename the oresheet here, it will appear in /config");
+ CSVnameSmall = c.tConfig.getString(
+ "CSV_name_for_Small_Ore_Sheet",
+ "ALL",
+ event.getModConfigurationDirectory() + "/GTNH-Small-Ores-Sheet.csv",
+ "rename the oresheet here, it will appear in /config");
+ maxTooltipLines = c.tConfig.getInt(
+ "MaxToolTipLines",
+ "ALL",
+ 11,
+ 1,
+ Integer.MAX_VALUE,
+ "Maximum number of lines the dimension names tooltip can have before it wraps around.");
+
+ c.save();
+ }
+
+ @EventHandler
+ public void init(FMLInitializationEvent event) {
+ ModBlocks.init();
+ IMCForNEI.IMCSender();
+ }
+
+ @EventHandler
+ public void onLoadComplete(FMLLoadCompleteEvent event) {
+ GT5OreLayerHelper.init();
+ GT5OreSmallHelper.init();
+ GT5UndergroundFluidHelper.init();
+ if (event.getSide() == Side.CLIENT) {
+ if (csv) {
+ new CSVMaker().run();
+ }
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/IMCForNEI.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/IMCForNEI.java
new file mode 100644
index 0000000000..2c69b68a4a
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/IMCForNEI.java
@@ -0,0 +1,64 @@
+package pers.gwyog.gtneioreplugin.plugin;
+
+import net.minecraft.nbt.NBTTagCompound;
+
+import cpw.mods.fml.common.event.FMLInterModComms;
+import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
+
+public class IMCForNEI {
+
+ public static void IMCSender() {
+ // Though these 2 are already registered in NEI jar, we need to re-register
+ // because new DimensionDisplayItems made tabs a bit taller.
+ sendHandler("pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5VeinStat", "gregtech:gt.blockores:386");
+
+ sendHandler("pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5SmallOreStat", "gregtech:gt.blockores:85");
+
+ sendHandler(
+ "pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid",
+ "gregtech:gt.metaitem.01:32619");
+ sendCatalyst(
+ "pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid",
+ "gregtech:gt.blockmachines:1157");
+ sendCatalyst(
+ "pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid",
+ "gregtech:gt.blockmachines:141");
+ sendCatalyst(
+ "pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid",
+ "gregtech:gt.blockmachines:142");
+ sendCatalyst(
+ "pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid",
+ "gregtech:gt.blockmachines:149");
+ sendCatalyst(
+ "pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid",
+ "gregtech:gt.blockmachines:148");
+ }
+
+ private static void sendHandler(String name, String itemStack) {
+ NBTTagCompound aNBT = new NBTTagCompound();
+ aNBT.setString("handler", name);
+ aNBT.setString("modName", GTNEIOrePlugin.NAME);
+ aNBT.setString("modId", GTNEIOrePlugin.MODID);
+ aNBT.setBoolean("modRequired", true);
+ aNBT.setString("itemName", itemStack);
+ aNBT.setInteger("handlerHeight", 160);
+ aNBT.setInteger("handlerWidth", 166);
+ aNBT.setInteger("maxRecipesPerPage", 2);
+ aNBT.setInteger("yShift", 0);
+ FMLInterModComms.sendMessage("NotEnoughItems", "registerHandlerInfo", aNBT);
+ }
+
+ @SuppressWarnings("SameParameterValue")
+ private static void sendCatalyst(String name, String itemStack, int priority) {
+ NBTTagCompound aNBT = new NBTTagCompound();
+ aNBT.setString("handlerID", name);
+ aNBT.setString("itemName", itemStack);
+ aNBT.setInteger("priority", priority);
+ FMLInterModComms.sendMessage("NotEnoughItems", "registerCatalystInfo", aNBT);
+ }
+
+ @SuppressWarnings("SameParameterValue")
+ private static void sendCatalyst(String name, String itemStack) {
+ sendCatalyst(name, itemStack, 0);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/NEIPluginConfig.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/NEIPluginConfig.java
new file mode 100644
index 0000000000..6996cba220
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/NEIPluginConfig.java
@@ -0,0 +1,35 @@
+package pers.gwyog.gtneioreplugin.plugin;
+
+import codechicken.nei.api.API;
+import codechicken.nei.api.IConfigureNEI;
+import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
+import pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5SmallOreStat;
+import pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5UndergroundFluid;
+import pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5VeinStat;
+
+@SuppressWarnings("unused")
+public class NEIPluginConfig implements IConfigureNEI {
+
+ @Override
+ public String getName() {
+ return "GregTech Ore Plugin";
+ }
+
+ @Override
+ public String getVersion() {
+ return GTNEIOrePlugin.VERSION;
+ }
+
+ @Override
+ public void loadConfig() {
+ PluginGT5VeinStat pluginVeinStat = new PluginGT5VeinStat();
+ PluginGT5SmallOreStat pluginSmallOreStat = new PluginGT5SmallOreStat();
+ PluginGT5UndergroundFluid pluginGT5UndergroundFluid = new PluginGT5UndergroundFluid();
+ API.registerRecipeHandler(pluginVeinStat);
+ API.registerUsageHandler(pluginVeinStat);
+ API.registerRecipeHandler(pluginSmallOreStat);
+ API.registerUsageHandler(pluginSmallOreStat);
+ API.registerRecipeHandler(pluginGT5UndergroundFluid);
+ API.registerUsageHandler(pluginGT5UndergroundFluid);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/PluginBase.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/PluginBase.java
new file mode 100644
index 0000000000..5509341696
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/PluginBase.java
@@ -0,0 +1,54 @@
+package pers.gwyog.gtneioreplugin.plugin;
+
+import java.awt.*;
+
+import net.minecraft.client.resources.I18n;
+import net.minecraft.util.EnumChatFormatting;
+
+import codechicken.lib.gui.GuiDraw;
+import codechicken.nei.recipe.TemplateRecipeHandler;
+
+public abstract class PluginBase extends TemplateRecipeHandler {
+
+ @Override
+ public int recipiesPerPage() {
+ return 1;
+ }
+
+ @Override
+ public String getRecipeName() {
+ return null;
+ }
+
+ @Override
+ public String getGuiTexture() {
+ return "gtneioreplugin:textures/gui/nei/guiBase.png";
+ }
+
+ @Override
+ public void loadTransferRects() {
+ int stringLength = GuiDraw.getStringWidth(EnumChatFormatting.BOLD + I18n.format("gtnop.gui.nei.seeAll"));
+ transferRects.add(
+ new RecipeTransferRect(
+ new Rectangle(getGuiWidth() - stringLength - 3, 5, stringLength, 9),
+ getOutputId()));
+ }
+
+ public abstract String getOutputId();
+
+ public int getGuiWidth() {
+ return 166;
+ }
+
+ /**
+ * Draw the "see all recipes" transfer label
+ */
+ protected void drawSeeAllRecipesLabel() {
+ GuiDraw.drawStringR(
+ EnumChatFormatting.BOLD + I18n.format("gtnop.gui.nei.seeAll"),
+ getGuiWidth() - 3,
+ 5,
+ 0x404040,
+ false);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java
new file mode 100644
index 0000000000..7d3b1eb5bc
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java
@@ -0,0 +1,47 @@
+package pers.gwyog.gtneioreplugin.plugin.block;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.MathHelper;
+
+import pers.gwyog.gtneioreplugin.plugin.renderer.ItemDimensionDisplayRenderer;
+
+public class BlockDimensionDisplay extends Block {
+
+ private final String dimension;
+
+ @SuppressWarnings("unused")
+ public long getDimensionRocketTier() {
+ return this.dimensionRocketTier;
+ }
+
+ private final long dimensionRocketTier;
+ private final IIcon[] icons = new IIcon[6];
+
+ public BlockDimensionDisplay(String dimension) {
+ super(Material.rock);
+ this.dimension = dimension;
+ this.dimensionRocketTier = ItemDimensionDisplayRenderer.getPrefix(dimension);
+ }
+
+ @Override
+ public IIcon getIcon(int side, int meta) {
+ return this.icons[MathHelper.clamp_int(side, 0, 5)];
+ }
+
+ @Override
+ public void registerBlockIcons(IIconRegister iconRegister) {
+ this.icons[0] = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_bottom");
+ this.icons[1] = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_top");
+ this.icons[2] = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_back");
+ this.icons[3] = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_front");
+ this.icons[4] = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_left");
+ this.icons[5] = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_right");
+ }
+
+ public String getDimension() {
+ return this.dimension;
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java
new file mode 100644
index 0000000000..db953c7112
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java
@@ -0,0 +1,27 @@
+package pers.gwyog.gtneioreplugin.plugin.block;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import net.minecraft.block.Block;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay;
+import pers.gwyog.gtneioreplugin.util.DimensionHelper;
+
+public class ModBlocks {
+
+ public static final Map<String, Block> blocks = new HashMap<>();
+
+ public static void init() {
+ for (String dimension : DimensionHelper.DimNameDisplayed) {
+ Block block = new BlockDimensionDisplay(dimension);
+ GameRegistry.registerBlock(block, ItemDimensionDisplay.class, "blockDimensionDisplay_" + dimension);
+ blocks.put(dimension, block);
+ }
+ }
+
+ public static Block getBlock(String dimension) {
+ return blocks.get(dimension);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java
new file mode 100644
index 0000000000..646e6d2bc7
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java
@@ -0,0 +1,64 @@
+package pers.gwyog.gtneioreplugin.plugin.gregtech5;
+
+import net.minecraft.client.resources.I18n;
+
+import codechicken.lib.gui.GuiDraw;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
+import pers.gwyog.gtneioreplugin.plugin.PluginBase;
+
+public abstract class PluginGT5Base extends PluginBase {
+
+ protected static String getLocalizedNameForItem(Materials aMaterial, String aFormat) {
+ return String.format(aFormat.replace("%s", "%temp").replace("%material", "%s"), aMaterial.mLocalizedName)
+ .replace("%temp", "%s");
+ }
+
+ protected static String getLocalizedNameForItem(String aFormat, int aMaterialID) {
+ if (aMaterialID >= 0 && aMaterialID < 1000) {
+ Materials aMaterial = GregTech_API.sGeneratedMaterials[aMaterialID];
+ if (aMaterial != null) {
+ return getLocalizedNameForItem(aMaterial, aFormat);
+ }
+ }
+ return aFormat;
+ }
+
+ public static String getGTOreLocalizedName(short index) {
+
+ if (!getLocalizedNameForItem(GT_LanguageManager.getTranslation(getGTOreUnlocalizedName(index)), index % 1000)
+ .contains("Awakened"))
+ return getLocalizedNameForItem(
+ GT_LanguageManager.getTranslation(getGTOreUnlocalizedName(index)),
+ index % 1000);
+ else return "Aw. Draconium Ore";
+ }
+
+ protected static String getGTOreUnlocalizedName(short index) {
+ return "gt.blockores." + index + ".name";
+ }
+
+ static void drawLine(String lineKey, String value, int x, int y) {
+ GuiDraw.drawString(I18n.format(lineKey) + ": " + value, x, y, 0x404040, false);
+ }
+
+ protected int getMaximumMaterialIndex(short meta, boolean smallOre) {
+ int offset = smallOre ? 16000 : 0;
+ if (!getGTOreLocalizedName((short) (meta + offset + 5000))
+ .equals(getGTOreUnlocalizedName((short) (meta + offset + 5000))))
+ return 7;
+ else if (!getGTOreLocalizedName((short) (meta + offset + 5000))
+ .equals(getGTOreUnlocalizedName((short) (meta + offset + 5000))))
+ return 6;
+ else return 5;
+ }
+
+ /**
+ * Draw the dimension header and the dimension names over up to 3 lines
+ *
+ */
+ protected void drawDimNames() {
+ GuiDraw.drawString(I18n.format("gtnop.gui.nei.worldNames") + ": ", 2, 100, 0x404040, false);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java
new file mode 100644
index 0000000000..76bd66d280
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java
@@ -0,0 +1,203 @@
+package pers.gwyog.gtneioreplugin.plugin.gregtech5;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+
+import net.minecraft.client.resources.I18n;
+import net.minecraft.item.ItemStack;
+
+import codechicken.nei.PositionedStack;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_OreDictUnificator;
+import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay;
+import pers.gwyog.gtneioreplugin.util.DimensionHelper;
+import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper;
+import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper.OreSmallWrapper;
+
+public class PluginGT5SmallOreStat extends PluginGT5Base {
+
+ private static final int SMALL_ORE_BASE_META = 16000;
+
+ @Override
+ public void drawExtras(int recipe) {
+ OreSmallWrapper oreSmall = getSmallOre(recipe);
+
+ drawSmallOreName(oreSmall);
+ drawSmallOreInfo(oreSmall);
+
+ drawDimNames();
+
+ drawSeeAllRecipesLabel();
+ }
+
+ private void drawSmallOreName(OreSmallWrapper oreSmall) {
+ String oreName = getGTOreLocalizedName((short) (oreSmall.oreMeta + SMALL_ORE_BASE_META));
+ drawLine("gtnop.gui.nei.oreName", oreName, 2, 18);
+ }
+
+ private void drawSmallOreInfo(OreSmallWrapper oreSmall) {
+ drawLine("gtnop.gui.nei.genHeight", oreSmall.worldGenHeightRange, 2, 31);
+ drawLine("gtnop.gui.nei.amount", String.valueOf(oreSmall.amountPerChunk), 2, 44);
+ drawLine("gtnop.gui.nei.chanceDrops", "", 2, 83 + getRestrictBiomeOffset());
+ drawLine("gtnop.gui.nei.worldNames", "", 2, 100);
+ }
+
+ private OreSmallWrapper getSmallOre(int recipe) {
+ CachedOreSmallRecipe crecipe = (CachedOreSmallRecipe) this.arecipes.get(recipe);
+ return GT5OreSmallHelper.mapOreSmallWrapper.get(crecipe.oreGenName);
+ }
+
+ public int getRestrictBiomeOffset() {
+ return GT5OreSmallHelper.restrictBiomeSupport ? 0 : -13;
+ }
+
+ @Override
+ public void loadCraftingRecipes(String outputId, Object... results) {
+ if (outputId.equals(getOutputId()))
+ for (ItemStack stack : GT5OreSmallHelper.oreSmallList) loadCraftingRecipes(stack);
+ else super.loadCraftingRecipes(outputId, results);
+ }
+
+ @Override
+ public void loadCraftingRecipes(ItemStack stack) {
+ if (stack.getUnlocalizedName().startsWith("gt.blockores")) {
+ short oreMeta = (short) (stack.getItemDamage() % 1000);
+ loadSmallOre(oreMeta, getMaximumMaterialIndex(oreMeta, true));
+ } else if (GT5OreSmallHelper.mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ short oreMeta = GT5OreSmallHelper.mapOreDropUnlocalizedNameToOreMeta.get(stack.getUnlocalizedName());
+ loadSmallOre(oreMeta, 7);
+ } else super.loadCraftingRecipes(stack);
+ }
+
+ @Override
+ public void loadUsageRecipes(ItemStack stack) {
+ String dimension = ItemDimensionDisplay.getDimension(stack);
+ if (dimension == null) {
+ return;
+ }
+
+ for (OreSmallWrapper oreVein : GT5OreSmallHelper.mapOreSmallWrapper.values()) {
+ if (Arrays.asList(getDimNameArrayFromVeinName(oreVein.oreGenName)).contains(dimension)) {
+ addSmallOre(oreVein, 7);
+ }
+ }
+ }
+
+ private void loadSmallOre(short oreMeta, int maximumIndex) {
+ OreSmallWrapper smallOre = getSmallOre(oreMeta);
+ if (smallOre != null) {
+ addSmallOre(smallOre, maximumIndex);
+ }
+ }
+
+ private OreSmallWrapper getSmallOre(short oreMeta) {
+ for (OreSmallWrapper oreSmallWorldGen : GT5OreSmallHelper.mapOreSmallWrapper.values()) {
+ if (oreSmallWorldGen.oreMeta == oreMeta) {
+ return oreSmallWorldGen;
+ }
+ }
+ return null;
+ }
+
+ private void addSmallOre(OreSmallWrapper smallOre, int maximumIndex) {
+ this.arecipes.add(
+ new CachedOreSmallRecipe(
+ smallOre.oreGenName,
+ smallOre.getMaterialDrops(maximumIndex),
+ getStoneDusts(maximumIndex),
+ GT5OreSmallHelper.mapOreMetaToOreDrops.get(smallOre.oreMeta)));
+ }
+
+ private List<ItemStack> getStoneDusts(int maximumIndex) {
+ List<ItemStack> materialDustStackList = new ArrayList<>();
+ for (int i = 0; i < maximumIndex; i++) materialDustStackList
+ .add(GT_OreDictUnificator.get(OrePrefixes.dust, GT5OreSmallHelper.getDroppedDusts()[i], 1L));
+ return materialDustStackList;
+ }
+
+ @Override
+ public String getOutputId() {
+ return "GTOrePluginOreSmall";
+ }
+
+ @Override
+ public String getRecipeName() {
+ return I18n.format("gtnop.gui.smallOreStat.name");
+ }
+
+ private String[] getDimNameArrayFromVeinName(String veinName) {
+ OreSmallWrapper oreSmall = GT5OreSmallHelper.mapOreSmallWrapper.get(veinName);
+ String[] dims = DimensionHelper.parseDimNames(GT5OreSmallHelper.bufferedDims.get(oreSmall));
+ Arrays.sort(dims, Comparator.comparingInt(s -> Arrays.asList(DimensionHelper.DimNameDisplayed).indexOf(s)));
+ return dims;
+ }
+
+ public class CachedOreSmallRecipe extends CachedRecipe {
+
+ public final String oreGenName;
+ public final PositionedStack positionedStackOreSmall;
+ public final PositionedStack positionedStackMaterialDust;
+ public final List<PositionedStack> positionedDropStackList;
+ private final List<PositionedStack> dimensionDisplayItems = new ArrayList<>();
+
+ public CachedOreSmallRecipe(String oreGenName, List<ItemStack> stackList, List<ItemStack> materialDustStackList,
+ List<ItemStack> dropStackList) {
+ this.oreGenName = oreGenName;
+ this.positionedStackOreSmall = new PositionedStack(stackList, 2, 0);
+ this.positionedStackMaterialDust = new PositionedStack(
+ materialDustStackList,
+ 43,
+ 79 + getRestrictBiomeOffset());
+ List<PositionedStack> positionedDropStackList = new ArrayList<>();
+ int i = 1;
+ for (ItemStack stackDrop : dropStackList) positionedDropStackList.add(
+ new PositionedStack(
+ stackDrop,
+ 43 + 20 * (i % 4),
+ 79 + 16 * ((i++) / 4) + getRestrictBiomeOffset()));
+ this.positionedDropStackList = positionedDropStackList;
+ setDimensionDisplayItems();
+ }
+
+ private void setDimensionDisplayItems() {
+ int x = 2;
+ int y = 110;
+ int count = 0;
+ int itemsPerLine = 9;
+ int itemSize = 18;
+ for (String dim : getDimNameArrayFromVeinName(this.oreGenName)) {
+ ItemStack item = ItemDimensionDisplay.getItem(dim);
+ if (item != null) {
+ int xPos = x + itemSize * (count % itemsPerLine);
+ int yPos = y + itemSize * (count / itemsPerLine);
+ dimensionDisplayItems.add(new PositionedStack(item, xPos, yPos, false));
+ count++;
+ }
+ }
+ }
+
+ @Override
+ public List<PositionedStack> getIngredients() {
+ return dimensionDisplayItems;
+ }
+
+ @Override
+ public PositionedStack getResult() {
+ return null;
+ }
+
+ @Override
+ public List<PositionedStack> getOtherStacks() {
+ List<PositionedStack> outputs = new ArrayList<>();
+ positionedStackOreSmall.setPermutationToRender((cycleticks / 20) % positionedStackOreSmall.items.length);
+ positionedStackMaterialDust
+ .setPermutationToRender((cycleticks / 20) % positionedStackMaterialDust.items.length);
+ outputs.add(positionedStackOreSmall);
+ outputs.add(positionedStackMaterialDust);
+ outputs.addAll(positionedDropStackList);
+ return outputs;
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5UndergroundFluid.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5UndergroundFluid.java
new file mode 100644
index 0000000000..8f7754bbde
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5UndergroundFluid.java
@@ -0,0 +1,165 @@
+package pers.gwyog.gtneioreplugin.plugin.gregtech5;
+
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import net.minecraft.client.resources.I18n;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+
+import codechicken.lib.gui.GuiDraw;
+import codechicken.nei.PositionedStack;
+import gregtech.api.util.GT_Utility;
+import pers.gwyog.gtneioreplugin.plugin.PluginBase;
+import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay;
+import pers.gwyog.gtneioreplugin.util.GT5UndergroundFluidHelper;
+import pers.gwyog.gtneioreplugin.util.GT5UndergroundFluidHelper.UndergroundFluidWrapper;
+
+public class PluginGT5UndergroundFluid extends PluginBase {
+
+ private static final int lineSpace = 20;
+ private static final int xDimensionDisplay = 30;
+ private static final int halfItemLength = 16 / 2;
+ private static final DecimalFormat format = new DecimalFormat("0.#");
+
+ @Override
+ public void loadCraftingRecipes(String outputId, Object... results) {
+ if (outputId.equals(getOutputId())) {
+ for (Map.Entry<String, List<UndergroundFluidWrapper>> entry : GT5UndergroundFluidHelper.getAllEntries()
+ .entrySet()) {
+ Fluid fluid = FluidRegistry.getFluid(entry.getKey());
+ if (fluid != null) {
+ this.arecipes.add(new CachedUndergroundFluidRecipe(fluid, entry.getValue()));
+ }
+ }
+ } else {
+ super.loadCraftingRecipes(outputId, results);
+ }
+ }
+
+ @Override
+ public void loadCraftingRecipes(ItemStack result) {
+ Fluid fluid = null;
+ FluidStack containerFluid = GT_Utility.getFluidForFilledItem(result, true);
+ if (containerFluid != null) {
+ fluid = containerFluid.getFluid();
+ }
+ if (fluid == null) {
+ FluidStack displayFluid = GT_Utility.getFluidFromDisplayStack(result);
+ if (displayFluid != null) {
+ fluid = displayFluid.getFluid();
+ }
+ }
+ if (fluid == null) return;
+
+ List<UndergroundFluidWrapper> wrappers = GT5UndergroundFluidHelper.getEntry(fluid.getName());
+ if (wrappers != null) {
+ this.arecipes.add(new CachedUndergroundFluidRecipe(fluid, wrappers));
+ }
+ }
+
+ @Override
+ public void loadUsageRecipes(ItemStack ingredient) {
+ String dimension = ItemDimensionDisplay.getDimension(ingredient);
+ if (dimension != null) {
+ for (Map.Entry<String, List<UndergroundFluidWrapper>> entry : GT5UndergroundFluidHelper.getAllEntries()
+ .entrySet()) {
+ boolean found = false;
+ for (UndergroundFluidWrapper wrapper : entry.getValue()) {
+ if (wrapper.dimension.equals(dimension)) {
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ Fluid fluid = FluidRegistry.getFluid(entry.getKey());
+ if (fluid != null) {
+ this.arecipes.add(new CachedUndergroundFluidRecipe(fluid, entry.getValue()));
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void drawExtras(int recipeIndex) {
+ drawSeeAllRecipesLabel();
+
+ int xChance = 85;
+ int xAmount = 140;
+ int yHeader = 30;
+ int black = 0x404040;
+
+ GuiDraw.drawStringC(I18n.format("gtnop.gui.nei.dimension") + ":", xDimensionDisplay, yHeader, black, false);
+ GuiDraw.drawStringC(I18n.format("gtnop.gui.nei.chance") + ":", xChance, yHeader, black, false);
+ GuiDraw.drawStringC(I18n.format("gtnop.gui.nei.fluidAmount") + ":", xAmount, yHeader, black, false);
+
+ int y = 50;
+ CachedUndergroundFluidRecipe recipe = (CachedUndergroundFluidRecipe) this.arecipes.get(recipeIndex);
+ for (int i = 0; i < recipe.dimensionDisplayItems.size(); i++) {
+ GuiDraw.drawStringC(format.format((double) recipe.chances.get(i) / 100) + "%", xChance, y, black, false);
+ GuiDraw.drawStringC(
+ recipe.minAmounts.get(i).toString() + "-" + recipe.maxAmounts.get(i).toString(),
+ xAmount,
+ y,
+ black,
+ false);
+ y += lineSpace;
+ }
+ }
+
+ @Override
+ public String getOutputId() {
+ return "GTOrePluginUndergroundFluid";
+ }
+
+ @Override
+ public String getRecipeName() {
+ return I18n.format("gtnop.gui.undergroundFluid.name");
+ }
+
+ private class CachedUndergroundFluidRecipe extends CachedRecipe {
+
+ private final PositionedStack targetFluidDisplay;
+ private final List<PositionedStack> dimensionDisplayItems = new ArrayList<>();
+ private final List<Integer> chances = new ArrayList<>();
+ private final List<Integer> maxAmounts = new ArrayList<>();
+ private final List<Integer> minAmounts = new ArrayList<>();
+
+ private CachedUndergroundFluidRecipe(Fluid fluid, List<UndergroundFluidWrapper> wrappers) {
+ targetFluidDisplay = new PositionedStack(
+ GT_Utility.getFluidDisplayStack(fluid),
+ getGuiWidth() / 2 - halfItemLength,
+ 3);
+ int y = 50 - halfItemLength;
+ for (UndergroundFluidWrapper wrapper : wrappers) {
+ ItemStack dimensionDisplay = ItemDimensionDisplay.getItem(wrapper.dimension);
+ if (dimensionDisplay != null) {
+ dimensionDisplayItems.add(
+ new PositionedStack(
+ dimensionDisplay,
+ xDimensionDisplay - halfItemLength,
+ y + GuiDraw.fontRenderer.FONT_HEIGHT / 2));
+ y += lineSpace;
+ chances.add(wrapper.chance);
+ maxAmounts.add(wrapper.maxAmount);
+ minAmounts.add(wrapper.minAmount);
+ }
+ }
+ }
+
+ @Override
+ public PositionedStack getResult() {
+ return targetFluidDisplay;
+ }
+
+ @Override
+ public List<PositionedStack> getIngredients() {
+ return dimensionDisplayItems;
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java
new file mode 100644
index 0000000000..98f168c2a7
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java
@@ -0,0 +1,202 @@
+package pers.gwyog.gtneioreplugin.plugin.gregtech5;
+
+import static pers.gwyog.gtneioreplugin.util.OreVeinLayer.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.List;
+
+import net.minecraft.client.resources.I18n;
+import net.minecraft.item.ItemStack;
+
+import codechicken.nei.PositionedStack;
+import cpw.mods.fml.common.Loader;
+import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay;
+import pers.gwyog.gtneioreplugin.util.DimensionHelper;
+import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper;
+import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper.OreLayerWrapper;
+
+public class PluginGT5VeinStat extends PluginGT5Base {
+
+ @Override
+ public void loadCraftingRecipes(String outputId, Object... results) {
+ if (outputId.equals(getOutputId())) {
+ for (OreLayerWrapper oreVein : getAllVeins()) {
+ addVeinWithLayers(oreVein, 7);
+ }
+ } else super.loadCraftingRecipes(outputId, results);
+ }
+
+ @Override
+ public void loadCraftingRecipes(ItemStack stack) {
+ if (stack.getUnlocalizedName().startsWith("gt.blockores")) {
+ loadMatchingVeins((short) (stack.getItemDamage() % 1000));
+ } else super.loadCraftingRecipes(stack);
+ }
+
+ private void loadMatchingVeins(short oreId) {
+ for (OreLayerWrapper oreVein : getAllVeins()) {
+ if (oreVein.containsOre(oreId)) {
+ addVeinWithLayers(oreVein, getMaximumMaterialIndex(oreId, false));
+ }
+ }
+ }
+
+ @Override
+ public void loadUsageRecipes(ItemStack stack) {
+ String dimension = ItemDimensionDisplay.getDimension(stack);
+ if (dimension == null) {
+ return;
+ }
+
+ for (OreLayerWrapper oreVein : getAllVeins()) {
+ if (Arrays.asList(getDimNameArrayFromVeinName(oreVein.veinName)).contains(dimension)) {
+ addVeinWithLayers(oreVein, getMaximumMaterialIndex((short) (stack.getItemDamage() % 1000), false));
+ }
+ }
+ }
+
+ private void addVeinWithLayers(OreLayerWrapper oreVein, int maximumMaterialIndex) {
+ this.arecipes.add(
+ new CachedVeinStatRecipe(
+ oreVein.veinName,
+ oreVein.getVeinLayerOre(maximumMaterialIndex, VEIN_PRIMARY),
+ oreVein.getVeinLayerOre(maximumMaterialIndex, VEIN_SECONDARY),
+ oreVein.getVeinLayerOre(maximumMaterialIndex, VEIN_BETWEEN),
+ oreVein.getVeinLayerOre(maximumMaterialIndex, VEIN_SPORADIC)));
+ }
+
+ private Collection<OreLayerWrapper> getAllVeins() {
+ return GT5OreLayerHelper.mapOreLayerWrapper.values();
+ }
+
+ @Override
+ public void drawExtras(int recipe) {
+ OreLayerWrapper oreLayer = getOreLayer(recipe);
+
+ drawVeinName(oreLayer);
+ drawVeinLayerNames(oreLayer);
+ drawVeinInfo(oreLayer);
+
+ drawDimNames();
+
+ drawSeeAllRecipesLabel();
+ }
+
+ private OreLayerWrapper getOreLayer(int recipe) {
+ CachedVeinStatRecipe crecipe = (CachedVeinStatRecipe) this.arecipes.get(recipe);
+ return GT5OreLayerHelper.mapOreLayerWrapper.get(crecipe.veinName);
+ }
+
+ private static void drawVeinName(OreLayerWrapper oreLayer) {
+ if (Loader.isModLoaded("visualprospecting")) {
+ drawVeinNameLine(I18n.format(oreLayer.veinName) + " ");
+ } else {
+ String veinName = getGTOreLocalizedName(oreLayer.Meta[VEIN_PRIMARY]);
+ if (veinName.contains("Ore")) drawVeinNameLine(veinName.split("Ore")[0]);
+ else if (veinName.contains("Sand")) drawVeinNameLine(veinName.split("Sand")[0]);
+ else drawVeinNameLine(veinName + " ");
+ }
+ }
+
+ private static void drawVeinNameLine(String veinName) {
+ drawLine("gtnop.gui.nei.veinName", veinName + I18n.format("gtnop.gui" + ".nei.vein"), 2, 20);
+ }
+
+ private static void drawVeinLayerNames(OreLayerWrapper oreLayer) {
+ drawVeinLayerNameLine(oreLayer, VEIN_PRIMARY, 50);
+ drawVeinLayerNameLine(oreLayer, VEIN_SECONDARY, 60);
+ drawVeinLayerNameLine(oreLayer, VEIN_BETWEEN, 70);
+ drawVeinLayerNameLine(oreLayer, VEIN_SPORADIC, 80);
+ }
+
+ private static void drawVeinLayerNameLine(OreLayerWrapper oreLayer, int veinLayer, int height) {
+ drawLine(getOreVeinLayerName(veinLayer), getGTOreLocalizedName(oreLayer.Meta[veinLayer]), 2, height);
+ }
+
+ private static void drawVeinInfo(OreLayerWrapper oreLayer) {
+ drawLine("gtnop.gui.nei.genHeight", oreLayer.worldGenHeightRange, 2, 90);
+ drawLine("gtnop.gui.nei.weightedChance", Integer.toString(oreLayer.randomWeight), 100, 90);
+ }
+
+ @Override
+ public String getOutputId() {
+ return "GTOrePluginVein";
+ }
+
+ @Override
+ public String getRecipeName() {
+ return I18n.format("gtnop.gui.veinStat.name");
+ }
+
+ private String[] getDimNameArrayFromVeinName(String veinName) {
+ OreLayerWrapper oreLayer = GT5OreLayerHelper.mapOreLayerWrapper.get(veinName);
+ String[] dims = DimensionHelper.parseDimNames(GT5OreLayerHelper.bufferedDims.get(oreLayer));
+ Arrays.sort(dims, Comparator.comparingInt(s -> Arrays.asList(DimensionHelper.DimNameDisplayed).indexOf(s)));
+ return dims;
+ }
+
+ public class CachedVeinStatRecipe extends CachedRecipe {
+
+ public final String veinName;
+ public final PositionedStack positionedStackPrimary;
+ public final PositionedStack positionedStackSecondary;
+ public final PositionedStack positionedStackBetween;
+ public final PositionedStack positionedStackSporadic;
+ private final List<PositionedStack> dimensionDisplayItems = new ArrayList<>();
+
+ public CachedVeinStatRecipe(String veinName, List<ItemStack> stackListPrimary,
+ List<ItemStack> stackListSecondary, List<ItemStack> stackListBetween,
+ List<ItemStack> stackListSporadic) {
+ this.veinName = veinName;
+ positionedStackPrimary = new PositionedStack(stackListPrimary, 2, 0);
+ positionedStackSecondary = new PositionedStack(stackListSecondary, 22, 0);
+ positionedStackBetween = new PositionedStack(stackListBetween, 42, 0);
+ positionedStackSporadic = new PositionedStack(stackListSporadic, 62, 0);
+ setDimensionDisplayItems();
+ }
+
+ private void setDimensionDisplayItems() {
+ int x = 2;
+ int y = 110;
+ int count = 0;
+ int itemsPerLine = 9;
+ int itemSize = 18;
+ for (String dim : getDimNameArrayFromVeinName(this.veinName)) {
+ ItemStack item = ItemDimensionDisplay.getItem(dim);
+ if (item != null) {
+ int xPos = x + itemSize * (count % itemsPerLine);
+ int yPos = y + itemSize * (count / itemsPerLine);
+ dimensionDisplayItems.add(new PositionedStack(item, xPos, yPos, false));
+ count++;
+ }
+ }
+ }
+
+ @Override
+ public List<PositionedStack> getIngredients() {
+ return dimensionDisplayItems;
+ }
+
+ @Override
+ public PositionedStack getResult() {
+ return null;
+ }
+
+ @Override
+ public List<PositionedStack> getOtherStacks() {
+ List<PositionedStack> outputs = new ArrayList<>();
+ positionedStackPrimary.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length);
+ positionedStackSecondary.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length);
+ positionedStackBetween.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length);
+ positionedStackSporadic.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length);
+ outputs.add(positionedStackPrimary);
+ outputs.add(positionedStackSecondary);
+ outputs.add(positionedStackBetween);
+ outputs.add(positionedStackSporadic);
+ return outputs;
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java
new file mode 100644
index 0000000000..b8e9301f3b
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java
@@ -0,0 +1,55 @@
+package pers.gwyog.gtneioreplugin.plugin.item;
+
+import static pers.gwyog.gtneioreplugin.GTNEIOrePlugin.LOG;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.client.MinecraftForgeClient;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.relauncher.Side;
+import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
+import pers.gwyog.gtneioreplugin.plugin.block.BlockDimensionDisplay;
+import pers.gwyog.gtneioreplugin.plugin.block.ModBlocks;
+import pers.gwyog.gtneioreplugin.plugin.renderer.ItemDimensionDisplayRenderer;
+import pers.gwyog.gtneioreplugin.util.DimensionHelper;
+
+public class ItemDimensionDisplay extends ItemBlock {
+
+ public ItemDimensionDisplay(Block block) {
+ super(block);
+ setCreativeTab(GTNEIOrePlugin.creativeTab);
+
+ if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
+ MinecraftForgeClient.registerItemRenderer(this, new ItemDimensionDisplayRenderer());
+ }
+ }
+
+ public static ItemStack getItem(String dimension) {
+ Block block = ModBlocks.getBlock(dimension);
+ if (block != null) {
+ return new ItemStack(block);
+ }
+ if (dimension != null) {
+ LOG.warn("Unknown dimension queried for ItemDimensionDisplay: " + dimension);
+ }
+ return null;
+ }
+
+ public static String getDimension(ItemStack stack) {
+ if (stack.getItem() instanceof ItemDimensionDisplay) {
+ return ((BlockDimensionDisplay) Block.getBlockFromItem(stack.getItem())).getDimension();
+ }
+ return null;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ String dimension = getDimension(stack);
+ if (dimension != null) {
+ return DimensionHelper.convertCondensedStringToToolTip(dimension).get(0);
+ }
+ return super.getItemStackDisplayName(stack);
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java
new file mode 100644
index 0000000000..0c670a6d3d
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java
@@ -0,0 +1,78 @@
+package pers.gwyog.gtneioreplugin.plugin.renderer;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.client.IItemRenderer;
+
+import org.lwjgl.opengl.GL11;
+
+import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay;
+
+public class ItemDimensionDisplayRenderer implements IItemRenderer {
+
+ private final RenderItem renderItem = new RenderItem();
+
+ @Override
+ public boolean handleRenderType(ItemStack item, ItemRenderType type) {
+ return type == ItemRenderType.INVENTORY;
+ }
+
+ @Override
+ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
+ return false;
+ }
+
+ // Renders the actual text on top of planet items.
+ @Override
+ public void renderItem(ItemRenderType type, ItemStack stack, Object... data) {
+ String dimension = ItemDimensionDisplay.getDimension(stack);
+ if (dimension == null) {
+ return;
+ }
+
+ renderItem.renderItemIntoGUI(
+ Minecraft.getMinecraft().fontRenderer,
+ Minecraft.getMinecraft().renderEngine,
+ stack,
+ 0,
+ 0,
+ false);
+
+ FontRenderer fontRender = Minecraft.getMinecraft().fontRenderer;
+ float smallTextScale = 3F / 4F;
+
+ GL11.glPushMatrix();
+ GL11.glTranslatef(0, 0, 300);
+ GL11.glScalef(smallTextScale, smallTextScale, 1.0f);
+
+ long prefix = getPrefix(dimension);
+ String tooltipPrefix = prefix != -1 ? "T" + prefix : "INVALID. Please, report this to the GTNH team";
+
+ fontRender
+ .drawString(tooltipPrefix, 0, (int) (16 / smallTextScale) - fontRender.FONT_HEIGHT + 1, 0xFFFFFF, true);
+
+ GL11.glPopMatrix();
+
+ GL11.glDisable(GL11.GL_ALPHA_TEST);
+ }
+
+ // See DimensionHelper.DimNameDisplayed for real names of these.
+ public static long getPrefix(String dimName) {
+ return switch (dimName) {
+ case "Ow", "Ne", "TF", "ED", "VA", "EA" -> 0L;
+ case "Mo" -> 1L;
+ case "De", "Ma", "Ph" -> 2L;
+ case "As", "Ca", "Ce", "Eu", "Ga", "Rb" -> 3L;
+ case "Io", "Me", "Ve" -> 4L;
+ case "En", "Mi", "Ob", "Ti", "Ra" -> 5L;
+ case "Pr", "Tr" -> 6L;
+ case "Ha", "KB", "MM", "Pl" -> 7L;
+ case "BC", "BE", "BF", "CB", "TE", "VB" -> 8L;
+ case "An", "Ho", "Np", "Mh", "MB", "Se" -> 9L;
+ case "DD" -> 10L;
+ default -> -1L;
+ };
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java b/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java
new file mode 100644
index 0000000000..1a56044219
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/CSVMaker.java
@@ -0,0 +1,229 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import java.io.BufferedWriter;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import com.opencsv.CSVWriter;
+import com.opencsv.bean.ColumnPositionMappingStrategy;
+import com.opencsv.bean.StatefulBeanToCsv;
+import com.opencsv.bean.StatefulBeanToCsvBuilder;
+
+import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
+import pers.gwyog.gtneioreplugin.plugin.gregtech5.PluginGT5VeinStat;
+import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper.OreLayerWrapper;
+
+public class CSVMaker implements Runnable {
+
+ public CSVMaker() {}
+
+ public static List<Oremix> Combsort(List<Oremix> list) {
+ try {
+ List<Oremix> list2 = new ArrayList<>(list.size());
+ list2.addAll(list);
+
+ int step = list2.size();
+ boolean swapped;
+ do {
+ swapped = false;
+ if (step > 1) {
+ step = (int) (step / 1.3);
+ }
+ for (int i = 0; i < list2.size() - step; i++) {
+ if (list2.get(i).getOreName().substring(0, 3)
+ .compareTo((list2.get(i + step).getOreName().substring(0, 3))) > 0) {
+ Oremix tmp = list2.get(i);
+ list2.set(i, list2.get(i + step));
+ list2.set(i + step, tmp);
+ swapped = true;
+ }
+ }
+ } while (swapped || step > 1);
+ return list2;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public void runSmallOres() {
+ try {
+ Iterator<Map.Entry<String, GT5OreSmallHelper.OreSmallWrapper>> it = GT5OreSmallHelper.mapOreSmallWrapper
+ .entrySet().iterator();
+ List<Oremix> OreVeins = new ArrayList<>();
+ while (it.hasNext()) {
+ Oremix oremix = new Oremix();
+
+ Map.Entry<String, GT5OreSmallHelper.OreSmallWrapper> pair = it.next();
+ String Dims = GT5OreSmallHelper.bufferedDims.get(pair.getValue());
+ GT5OreSmallHelper.OreSmallWrapper oreLayer = pair.getValue();
+ oremix.setOreName(oreLayer.oreGenName.split("\\.")[2]);
+ oremix.setHeight(oreLayer.worldGenHeightRange);
+ oremix.setDensity(oreLayer.amountPerChunk);
+ oremix.an = Dims.contains("An");
+ oremix.as = Dims.contains("As");
+ oremix.bc = Dims.contains("BC");
+ oremix.be = Dims.contains("BE");
+ oremix.bf = Dims.contains("BF");
+ oremix.ca = Dims.contains("Ca");
+ oremix.cb = Dims.contains("CA");
+ oremix.ce = Dims.contains("Ce");
+ oremix.dd = Dims.contains("DD");
+ oremix.de = Dims.contains("De");
+ oremix.ea = Dims.contains("EA");
+ oremix.en = Dims.contains("En");
+ oremix.eu = Dims.contains("Eu");
+ oremix.ga = Dims.contains("Ga");
+ oremix.ha = Dims.contains("Ha");
+ oremix.ho = Dims.contains("Ho");
+ oremix.io = Dims.contains("Io");
+ oremix.kb = Dims.contains("KB");
+ oremix.make = Dims.contains("MM");
+ oremix.ma = Dims.contains("Ma");
+ oremix.mb = Dims.contains("MB");
+ oremix.me = Dims.contains("Me");
+ oremix.mh = Dims.contains("Mh");
+ oremix.mi = Dims.contains("Mi");
+ oremix.mo = Dims.contains("Mo");
+ oremix.np = Dims.contains("Np");
+ oremix.ob = Dims.contains("Ob");
+ oremix.ph = Dims.contains("Ph");
+ oremix.pl = Dims.contains("Pl");
+ oremix.pr = Dims.contains("Pr");
+ oremix.se = Dims.contains("Se");
+ oremix.tcetie = Dims.contains("TE");
+ oremix.tf = Dims.contains("TF");
+ oremix.ti = Dims.contains("Ti");
+ oremix.tr = Dims.contains("Tr");
+ oremix.vb = Dims.contains("VB");
+ oremix.ve = Dims.contains("Ve");
+ oremix.setOverworld(Dims.contains("Ow"));
+ oremix.setNether(Dims.contains("Ne"));
+ oremix.setEnd(Dims.contains("EN"));
+ OreVeins.add(oremix);
+
+ System.out.println(pair.getKey() + " = " + pair.getValue());
+ it.remove(); // avoids a ConcurrentModificationException
+ }
+ BufferedWriter one = Files.newBufferedWriter(Paths.get(GTNEIOrePlugin.CSVnameSmall));
+ ColumnPositionMappingStrategy<Oremix> strat = new ColumnPositionMappingStrategy<>();
+ strat.setType(Oremix.class);
+ String[] columns = "ORENAME,mix,DENSITY,overworld,nether,end,ea,tf,mo,ma,ph,de,as,ce,eu,ga,ca,io,ve,me,en,ti,mi,ob,pr,tr,pl,kb,ha,make,dd,cb,vb,bc,be,bf,tcetie,an,ho,np,mh,mb,se"
+ .split("\\,");
+ strat.setColumnMapping(columns);
+ StatefulBeanToCsv<Oremix> beanToCsv = new StatefulBeanToCsvBuilder<Oremix>(one)
+ .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER).withMappingStrategy(strat).build();
+ List<Oremix> towrite = Combsort(OreVeins);
+ one.write(
+ "Ore Name,Primary,Secondary,Inbetween,Around,ID,Tier,Height,Density,Size,Weight,Overworld,Nether,End,End Asteroids,Twilight Forest,Moon,Mars,Phobos,Deimos,Asteroids,Ceres,Europa,Ganymede,Callisto,Io,Venus,Mercury,Enceladus,Titan,Miranda,Oberon,Proteus,Triton,Pluto,Kuiper Belt,Haumea,Makemake,Deep Dark,Centauri Bb,Vega B,Barnard C,Barnard E,Barnard F,T Ceti E,Anubis,Horus,Neper,Maahes,Mehen Belt,Seth");
+ one.newLine();
+ beanToCsv.write(towrite);
+ one.flush();
+ one.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void run() {
+ runVeins();
+ runSmallOres();
+ }
+
+ public void runVeins() {
+ try {
+ Iterator<Map.Entry<String, OreLayerWrapper>> it = GT5OreLayerHelper.mapOreLayerWrapper.entrySet()
+ .iterator();
+ List<Oremix> OreVeins = new ArrayList<>();
+ while (it.hasNext()) {
+ Oremix oremix = new Oremix();
+
+ Map.Entry<String, OreLayerWrapper> pair = it.next();
+ String Dims = GT5OreLayerHelper.bufferedDims.get(pair.getValue());
+ OreLayerWrapper oreLayer = pair.getValue();
+ oremix.setOreName(oreLayer.veinName.split("\\.")[2]);
+ oremix.setPrimary(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[0]));
+ oremix.setSecondary(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[1]));
+ oremix.setInbetween(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[2]));
+ oremix.setAround(PluginGT5VeinStat.getGTOreLocalizedName(oreLayer.Meta[3]));
+ oremix.setSize(oreLayer.size);
+ oremix.setHeight(oreLayer.worldGenHeightRange);
+ oremix.setDensity(oreLayer.density);
+ oremix.setWeight(oreLayer.randomWeight);
+ oremix.setMix(
+ Integer.toString(oreLayer.Meta[0]) + "|"
+ + Integer.toString(oreLayer.Meta[1])
+ + "|"
+ + Integer.toString(oreLayer.Meta[2])
+ + "|"
+ + Integer.toString(oreLayer.Meta[3]));
+ oremix.an = Dims.contains("An");
+ oremix.as = Dims.contains("As");
+ oremix.bc = Dims.contains("BC");
+ oremix.be = Dims.contains("BE");
+ oremix.bf = Dims.contains("BF");
+ oremix.ca = Dims.contains("Ca");
+ oremix.cb = Dims.contains("CA");
+ oremix.ce = Dims.contains("Ce");
+ oremix.dd = Dims.contains("DD");
+ oremix.de = Dims.contains("De");
+ oremix.ea = Dims.contains("EA");
+ oremix.en = Dims.contains("En");
+ oremix.eu = Dims.contains("Eu");
+ oremix.ga = Dims.contains("Ga");
+ oremix.ha = Dims.contains("Ha");
+ oremix.ho = Dims.contains("Ho");
+ oremix.io = Dims.contains("Io");
+ oremix.kb = Dims.contains("KB");
+ oremix.make = Dims.contains("MM");
+ oremix.ma = Dims.contains("Ma");
+ oremix.mb = Dims.contains("MB");
+ oremix.me = Dims.contains("Me");
+ oremix.mh = Dims.contains("Mh");
+ oremix.mi = Dims.contains("Mi");
+ oremix.mo = Dims.contains("Mo");
+ oremix.np = Dims.contains("Np");
+ oremix.ob = Dims.contains("Ob");
+ oremix.ph = Dims.contains("Ph");
+ oremix.pl = Dims.contains("Pl");
+ oremix.pr = Dims.contains("Pr");
+ oremix.se = Dims.contains("Se");
+ oremix.tcetie = Dims.contains("TE");
+ oremix.tf = Dims.contains("TF");
+ oremix.ti = Dims.contains("Ti");
+ oremix.tr = Dims.contains("Tr");
+ oremix.vb = Dims.contains("VB");
+ oremix.ve = Dims.contains("Ve");
+ oremix.setOverworld(Dims.contains("Ow"));
+ oremix.setNether(Dims.contains("Ne"));
+ oremix.setEnd(Dims.contains("EN"));
+ OreVeins.add(oremix);
+
+ System.out.println(pair.getKey() + " = " + pair.getValue());
+ it.remove(); // avoids a ConcurrentModificationException
+ }
+ BufferedWriter one = Files.newBufferedWriter(Paths.get(GTNEIOrePlugin.CSVname));
+ ColumnPositionMappingStrategy<Oremix> strat = new ColumnPositionMappingStrategy<>();
+ strat.setType(Oremix.class);
+ String[] columns = "ORENAME,PRIMARY,SECONDARY,INBETWEEN,AROUND,mix,TIER,HEIGHT,DENSITY,SIZE,WEIGHT,overworld,nether,end,ea,tf,mo,ma,ph,de,as,ce,eu,ga,ca,io,ve,me,en,ti,mi,ob,pr,tr,pl,kb,ha,make,dd,cb,vb,bc,be,bf,tcetie,an,ho,np,mh,mb,se"
+ .split("\\,");
+ strat.setColumnMapping(columns);
+ StatefulBeanToCsv<Oremix> beanToCsv = new StatefulBeanToCsvBuilder<Oremix>(one)
+ .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER).withMappingStrategy(strat).build();
+ List<Oremix> towrite = Combsort(OreVeins);
+ one.write(
+ "Ore Name,Primary,Secondary,Inbetween,Around,ID,Tier,Height,Density,Size,Weight,Overworld,Nether,End,End Asteroids,Twilight Forest,Moon,Mars,Phobos,Deimos,Asteroids,Ceres,Europa,Ganymede,Callisto,Io,Venus,Mercury,Enceladus,Titan,Miranda,Oberon,Proteus,Triton,Pluto,Kuiper Belt,Haumea,Makemake,Deep Dark,Centauri Bb,Vega B,Barnard C,Barnard E,Barnard F,T Ceti E,Anubis,Horus,Neper,Maahes,Mehen Belt,Seth");
+ one.newLine();
+ beanToCsv.write(towrite);
+ one.flush();
+ one.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java
new file mode 100644
index 0000000000..b82cb63f58
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java
@@ -0,0 +1,159 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import static pers.gwyog.gtneioreplugin.GTNEIOrePlugin.maxTooltipLines;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import net.minecraft.util.StatCollector;
+
+public class DimensionHelper {
+
+ public static final String[] DimName = {
+ // Non GC dimensions in progression order instead of alphabetical
+ "Overworld", "Nether", "Twilight", "TheEnd", "Vanilla_EndAsteroids", "EndAsteroid",
+ // T1
+ "GalacticraftCore_Moon",
+ // T2
+ "GalaxySpace_Deimos", "GalacticraftMars_Mars", "GalaxySpace_Phobos",
+ // T3
+ "GalacticraftMars_Asteroids", "GalaxySpace_Callisto", "GalaxySpace_Ceres", "GalaxySpace_Europa",
+ "GalaxySpace_Ganymede", "Ross128b",
+ // T4
+ "GalaxySpace_Io", "GalaxySpace_Mercury", "GalaxySpace_Venus",
+ // T5
+ "GalaxySpace_Enceladus", "GalaxySpace_Miranda", "GalaxySpace_Oberon", "GalaxySpace_Titan", "Ross128ba",
+ // T6
+ "GalaxySpace_Proteus", "GalaxySpace_Triton",
+ // T7
+ "GalaxySpace_Haumea", "GalaxySpace_Kuiperbelt", "GalaxySpace_MakeMake", "GalaxySpace_Pluto",
+ // T8
+ "GalaxySpace_BarnardC", "GalaxySpace_BarnardE", "GalaxySpace_BarnardF", "GalaxySpace_CentauriA",
+ "GalaxySpace_TcetiE", "GalaxySpace_VegaB",
+ // T9
+ "GalacticraftAmunRa_Anubis", "GalacticraftAmunRa_Horus", "GalacticraftAmunRa_Maahes",
+ "GalacticraftAmunRa_MehenBelt", "GalacticraftAmunRa_Neper", "GalacticraftAmunRa_Seth",
+ // T10
+ "Underdark", };
+
+ public static final String[] DimNameTrimmed = Arrays.stream(DimName)
+ .map(
+ n -> n.replaceAll("GalacticraftCore_", "").replaceAll("GalacticraftMars_", "")
+ .replaceAll("GalaxySpace_", "").replaceAll("GalacticraftAmunRa_", "")
+ .replaceAll("Vanilla_", "Vanilla "))
+ .toArray(String[]::new);
+
+ public static final String[] DimNameDisplayed = { // first 2 letters if one word else 1 letter of every word, except
+ // capital letter in
+ // name, then 1rst + capital Moon = Mo, BarnardC = BC, EndAsteroid = EA
+ // Non GC dimensions in progression order instead of alphabetical
+ "Ow", // Overworld
+ "Ne", // Nether
+ "TF", // Twilight
+ "ED", // TheEnd because En = Encalus
+ "VA", // Vanilla_EndAsteroids
+ "EA", // EndAsteroid
+ // T1
+ "Mo", // GalacticraftCore_Moon
+ // T2
+ "De", // GalaxySpace_Deimos
+ "Ma", // GalacticraftMars_Mars
+ "Ph", // GalaxySpace_Phobos
+ // T3
+ "As", // GalacticraftMars_Asteroids
+ "Ca", // GalaxySpace_Callisto
+ "Ce", // GalaxySpace_Ceres
+ "Eu", // GalaxySpace_Europa
+ "Ga", // GalaxySpace_Ganymede
+ "Rb", // Ross128b
+ // T4
+ "Io", // GalaxySpace_Io
+ "Me", // GalaxySpace_Mercury
+ "Ve", // GalaxySpace_Venus
+ // T5
+ "En", // GalaxySpace_Enceladus
+ "Mi", // GalaxySpace_Miranda
+ "Ob", // GalaxySpace_Oberon
+ "Ti", // GalaxySpace_Titan
+ "Ra", // Ross128ba
+ // T6
+ "Pr", // GalaxySpace_Proteus
+ "Tr", // GalaxySpace_Triton
+ // T7
+ "Ha", // GalaxySpace_Haumea
+ "KB", // GalaxySpace_Kuiperbelt
+ "MM", // GalaxySpace_MakeMake
+ "Pl", // GalaxySpace_Pluto
+ // T8
+ "BC", // GalaxySpace_BarnardC
+ "BE", // GalaxySpace_BarnardE
+ "BF", // GalaxySpace_BarnardF
+ "CB", // GalaxySpace_CentauriA is actually α Centauri Bb
+ "TE", // GalaxySpace_TcetiE
+ "VB", // GalaxySpace_VegaB
+ // T9
+ "An", // GalacticraftAmunRa_Anubis
+ "Ho", // GalacticraftAmunRa_Horus
+ "Mh", // GalacticraftAmunRa_Maahes
+ "MB", // GalacticraftAmunRa_MehenBelt
+ "Np", // GalacticraftAmunRa_Neper
+ "Se", // GalacticraftAmunRa_Seth
+ // T10
+ "DD", // Underdark
+ };
+
+ private static final HashMap<String, List<String>> tooltipBuffer = new HashMap<>();
+
+ private static List<String> computeString(String line) {
+ String[] dims = parseDimNames(line);
+ for (int j = 0; j < dims.length; j++) {
+ String s = dims[j];
+ for (int i = 0; i < DimNameDisplayed.length; i++) {
+ if (s.equals(DimNameDisplayed[i])) {
+ String k = DimNameTrimmed[i];
+ s = StatCollector.translateToLocal("gtnop.world." + k);
+ s = switch (k) {
+ case "Moon" -> "T1: " + s;
+ case "Deimos", "Mars", "Phobos" -> "T2: " + s;
+ case "Asteroids", "Callisto", "Ceres", "Europa", "Ganymede", "Ross128b" -> "T3: " + s;
+ case "Io", "Mercury", "Venus" -> "T4: " + s;
+ case "Enceladus", "Miranda", "Oberon", "Titan", "Ross128ba" -> "T5: " + s;
+ case "Proteus", "Triton" -> "T6: " + s;
+ case "Haumea", "Kuiperbelt", "MakeMake", "Pluto" -> "T7: " + s;
+ case "BarnardC", "BarnardE", "BarnardF", "CentauriA", "TcetiE", "VegaB" -> "T8: " + s;
+ case "Anubis", "Horus", "Maahes", "MehenBelt", "Neper", "Seth" -> "T9: " + s;
+ case "Underdark" -> "T10: " + s;
+ default -> s;
+ };
+
+ dims[j] = s;
+ }
+ }
+ }
+
+ if (dims.length > maxTooltipLines) {
+ dims = StringPaddingHack.stringsToSpacedColumns(
+ dims,
+ dims.length / maxTooltipLines + (dims.length % maxTooltipLines == 0 ? 0 : 1),
+ 2);
+ }
+
+ return Arrays.asList(dims);
+ }
+
+ public static String[] parseDimNames(String line) {
+ String[] dims = line.split(",");
+ for (int j = 0; j < dims.length; j++) {
+ String s = dims[j];
+ s = s.replaceAll(",", "");
+ s = s.trim();
+ dims[j] = s;
+ }
+ return dims;
+ }
+
+ public static List<String> convertCondensedStringToToolTip(String line) {
+ return tooltipBuffer.computeIfAbsent(line, (String tmp) -> computeString(line));
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java
new file mode 100644
index 0000000000..ebc9956af1
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5CFGHelper.java
@@ -0,0 +1,199 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import net.minecraftforge.common.config.ConfigCategory;
+import net.minecraftforge.common.config.Configuration;
+import net.minecraftforge.common.config.Property;
+
+import cpw.mods.fml.common.FMLLog;
+import gregtech.api.GregTech_API;
+import pers.gwyog.gtneioreplugin.GTNEIOrePlugin;
+
+public class GT5CFGHelper {
+
+ // Do NOT ever put a comma in this or it will break split calls later in the code. Bad, but it is what it is.
+ public static final String oreVeinNotInAnyDim = "Not available in any Galactic Dim!";
+
+ private static final File F = GregTech_API.sWorldgenFile.mConfig.getConfigFile();
+
+ public static String GT5CFGSmallOres(String Veinname) {
+ List<String> raw = new ArrayList<>();
+ List<String> rawbools = new ArrayList<>();
+ String st;
+ Configuration c = new Configuration(F);
+ ConfigCategory configCategory = c.getCategory("worldgen." + Veinname);
+ for (Property p : configCategory.getOrderedValues()) {
+ if (p.isBooleanValue() && p.getBoolean()) {
+ raw.add(p.getName() + "=" + p.getBoolean());
+ }
+ }
+ if (!raw.isEmpty()) {
+ for (String s : raw) {
+ for (int j = 0; j < DimensionHelper.DimName.length; j++) {
+ if (s.contains(DimensionHelper.DimName[j])) {
+ rawbools.add(s);
+ }
+ }
+ }
+ } else GTNEIOrePlugin.LOG.info("Config entry not found for Vein: " + Veinname);
+
+ StringBuilder ret = new StringBuilder(" ");
+
+ HashSet<String> rawboolsset = new HashSet<>();
+ if (!rawbools.isEmpty()) {
+ for (String rawbool : rawbools) {
+ st = rawbool.replace("B:", "").replace("_true", "").replace("_false", "").replaceAll(" ", "")
+ .replaceAll("\"", "");
+ rawboolsset.add(st);
+ }
+ rawbools = new ArrayList<>(rawboolsset);
+ for (int j = 0; j < DimensionHelper.DimName.length; j++) {
+ for (String rawbool : rawbools) {
+ st = rawbool;
+ if (st.contains(DimensionHelper.DimName[j]) && st.contains("=true")) {
+ ret.append(DimensionHelper.DimNameDisplayed[j]).append(",");
+ }
+ }
+ }
+ }
+ ret = new StringBuilder(ret.toString().trim());
+ if (ret.toString().equals("") || ret.toString().equals(" ")) {
+ ret = new StringBuilder(oreVeinNotInAnyDim);
+ }
+ return ret.toString();
+ }
+
+ public static String GT5CFG(String Veinname) {
+ // FMLLog.info(Veinname);
+ if (F == null) {
+ FMLLog.bigWarning("GT_CFG_NOT_found[0]");
+ return "Error while Loading CFG";
+ } else try {
+ int buffer = (int) (0.1 * Runtime.getRuntime().freeMemory());
+ if (buffer > F.length()) {
+ buffer = (int) F.length();
+ }
+ // allocate 10% of free memory for read-in-buffer, if there is less than filesize memory available
+ // FMLLog.info("GT_CFG_found[0]");
+ FileReader in = new FileReader(F);
+ // FMLLog.info("FileReader created");
+ BufferedReader reader = new BufferedReader(in, buffer);
+ // FMLLog.info("BufferedReader" +Integer.toString(buffer)+"created");
+ String st;
+ List<String> raw = new ArrayList<>();
+ List<String> rawbools = new ArrayList<>();
+ Boolean[] found = new Boolean[2];
+ found[0] = false;
+ found[1] = false;
+
+ do {
+ // FMLLog.info("erste");
+ // read until reached eof or mix {
+ st = reader.readLine();
+ // FMLLog.info("st: "+st);
+ if (st != null && st.trim().equals("mix {")) {
+ while (!(st == null || found[0])) {
+ // FMLLog.info("zweite");
+ st = reader.readLine();
+ // read until reached eof or Veinname {
+ // FMLLog.info("MIXst: "+st);
+ if (st != null && st.trim().equals(Veinname + " {")) {
+ // FMLLog.info("VEINNAMEst: "+st);
+ while (!(st == null || found[0])) {
+ st = reader.readLine();
+ if ((!(st == null)) && st.trim().equals("}")) {
+ found[0] = true;
+ }
+ // FMLLog.info("dritte");
+ // add everything below Veinname { undtil } to raw
+ raw.add(st);
+ }
+ }
+ }
+ }
+
+ if (st != null && st.trim().equals("dimensions {")) {
+ while (!(st == null || found[1])) {
+ // FMLLog.info("zweite");
+ st = reader.readLine();
+ if (st != null && (st.trim().equals("mix {"))) {
+ while (!(st == null || found[1])) {
+ // FMLLog.info("dritte");
+ st = reader.readLine();
+ // read until reached eof or Veinname {
+ // FMLLog.info("MIXst: "+st);
+ if (st != null && st.trim().equals(Veinname + " {")) {
+ // FMLLog.info("VEINNAMEst: "+st);
+ while (!(st == null || found[1])) {
+ st = reader.readLine();
+ if ((!(st == null)) && st.trim().equals("}")) {
+ found[1] = true;
+ }
+ // FMLLog.info("vierte");
+ // add everything below Veinname { undtil } to raw
+ raw.add(st);
+ }
+ }
+ }
+ }
+ }
+ }
+ } while (st != null);
+ reader.close(); // not needed anymore
+
+ if (!raw.isEmpty()) {
+ for (String s : raw) {
+ // filter needed booleans from raw
+ /// FMLLog.info("raw contains"+raw.get(i));
+ for (int j = 0; j < DimensionHelper.DimName.length; j++) {
+ if (s.contains(DimensionHelper.DimName[j])) {
+ rawbools.add(s);
+ }
+ }
+ // FMLLog.info("rawbools: "+rawbools.get(i));
+ }
+ } else {
+ GTNEIOrePlugin.LOG.info("Config entry not found for Vein: " + Veinname);
+ }
+
+ StringBuilder ret = new StringBuilder(" ");
+
+ HashSet<String> rawboolsset = new HashSet<>();
+ if (!rawbools.isEmpty()) {
+ // remove dublicates
+ for (String rawbool : rawbools) {
+ st = rawbool.replace("B:", "").replace("_true", "").replace("_false", "").replaceAll(" ", "")
+ .replaceAll("\"", "");
+ rawboolsset.add(st);
+ }
+ rawbools = new ArrayList<>(rawboolsset);
+ // filter for dims set to true
+ for (int j = 0; j < DimensionHelper.DimName.length; j++) {
+ // FMLLog.info("RawBools:"+st);
+ for (String rawbool : rawbools) {
+ st = rawbool;
+ if (st.contains(DimensionHelper.DimName[j]) && st.contains("=true")) {
+ ret.append(DimensionHelper.DimNameDisplayed[j]).append(",");
+ }
+ }
+ }
+ }
+ ret = new StringBuilder(ret.toString().trim());
+ // FMLLog.info("ret:"+ret);
+ if (ret.toString().equals("") || ret.toString().equals(" ")) {
+ ret = new StringBuilder(oreVeinNotInAnyDim);
+ }
+ return ret.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ return "Error while Loading CFG";
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java
new file mode 100644
index 0000000000..c2c4fa9800
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreLayerHelper.java
@@ -0,0 +1,139 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import static pers.gwyog.gtneioreplugin.util.GT5CFGHelper.oreVeinNotInAnyDim;
+import static pers.gwyog.gtneioreplugin.util.OreVeinLayer.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.objects.ItemData;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.common.GT_Worldgen_GT_Ore_Layer;
+
+public class GT5OreLayerHelper {
+
+ public static class NormalOreDimensionWrapper {
+
+ public final ArrayList<OreLayerWrapper> internalDimOreList = new ArrayList<>();
+ public final HashMap<OreLayerWrapper, Double> oreVeinToProbabilityInDimension = new HashMap<>();
+
+ // Calculate all weights of ore veins once dimension is initialised.
+ private void calculateWeights() {
+ int totalWeight = 0;
+ for (OreLayerWrapper oreVein : internalDimOreList) {
+ totalWeight += oreVein.randomWeight;
+ }
+ for (OreLayerWrapper oreVein : internalDimOreList) {
+ oreVeinToProbabilityInDimension.put(oreVein, ((double) oreVein.randomWeight) / ((double) totalWeight));
+ }
+ }
+ }
+
+ private static final int DIMENSION_COUNT = 33;
+ public static final Integer[] weightPerWorld = new Integer[DIMENSION_COUNT];
+ public static final Integer[] DimIDs = new Integer[DIMENSION_COUNT];
+ public static final HashMap<String, OreLayerWrapper> mapOreLayerWrapper = new HashMap<>();
+ public static final HashMap<OreLayerWrapper, String> bufferedDims = new HashMap<>();
+ public static final HashMap<String, NormalOreDimensionWrapper> dimToOreWrapper = new HashMap<>();
+
+ public static void init() {
+ Arrays.fill(weightPerWorld, 0);
+ Arrays.fill(DimIDs, 0);
+ for (GT_Worldgen_GT_Ore_Layer tWorldGen : GT_Worldgen_GT_Ore_Layer.sList)
+ mapOreLayerWrapper.put(tWorldGen.mWorldGenName, new OreLayerWrapper(tWorldGen));
+ for (OreLayerWrapper layer : mapOreLayerWrapper.values()) {
+ bufferedDims.put(layer, getDims(layer));
+ }
+
+ // --- Handling of dimToOreWrapper ---
+
+ // Get dims as "Ow,Ne,Ma" etc.
+ bufferedDims.forEach((veinInfo, dims) -> {
+ if (dims.equals(oreVeinNotInAnyDim)) {
+ return;
+ }
+
+ for (String dim : dims.split(",")) {
+ if (!dim.isEmpty()) {
+ NormalOreDimensionWrapper dimensionOres = dimToOreWrapper
+ .getOrDefault(dim, new NormalOreDimensionWrapper());
+ dimensionOres.internalDimOreList.add(veinInfo);
+ dimToOreWrapper.put(dim, dimensionOres);
+ }
+ }
+
+ // Calculate probabilities for each dim.
+ for (String dim : dimToOreWrapper.keySet()) {
+ dimToOreWrapper.get(dim).calculateWeights();
+ }
+ });
+ // --- End of handling for dimToOreWrapper ---
+ }
+
+ public static String getDims(OreLayerWrapper oreLayer) {
+ return GT5CFGHelper.GT5CFG(oreLayer.veinName.replace("ore.mix.custom" + ".", "").replace("ore.mix.", ""));
+ }
+
+ public static class OreLayerWrapper {
+
+ public final String veinName, worldGenHeightRange;
+ public final short[] Meta = new short[4];
+ public final short randomWeight, size, density;
+
+ public final Materials mPrimaryVeinMaterial;
+ public final Materials mSecondaryMaterial;
+ public final Materials mBetweenMaterial;
+ public final Materials mSporadicMaterial;
+
+ public OreLayerWrapper(GT_Worldgen_GT_Ore_Layer worldGen) {
+ this.veinName = worldGen.mWorldGenName;
+ this.Meta[0] = worldGen.mPrimaryMeta;
+ this.Meta[1] = worldGen.mSecondaryMeta;
+ this.Meta[2] = worldGen.mBetweenMeta;
+ this.Meta[3] = worldGen.mSporadicMeta;
+
+ // Black magic, don't ask me how it works, I have no idea.
+ ItemData primaryVeinData = GT_OreDictUnificator
+ .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mPrimaryMeta));
+ this.mPrimaryVeinMaterial = primaryVeinData != null ? primaryVeinData.mMaterial.mMaterial : null;
+ ItemData secondaryVeinData = GT_OreDictUnificator
+ .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mSecondaryMeta));
+ this.mSecondaryMaterial = secondaryVeinData != null ? secondaryVeinData.mMaterial.mMaterial : null;
+ ItemData betweenVeinData = GT_OreDictUnificator
+ .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mBetweenMeta));
+ this.mBetweenMaterial = betweenVeinData != null ? betweenVeinData.mMaterial.mMaterial : null;
+ ItemData sporadicVeinData = GT_OreDictUnificator
+ .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mSporadicMeta));
+ this.mSporadicMaterial = sporadicVeinData != null ? sporadicVeinData.mMaterial.mMaterial : null;
+
+ this.size = worldGen.mSize;
+ this.density = worldGen.mDensity;
+ this.worldGenHeightRange = worldGen.mMinY + "-" + worldGen.mMaxY;
+ this.randomWeight = worldGen.mWeight;
+ }
+
+ public List<ItemStack> getVeinLayerOre(int maximumMaterialIndex, int veinLayer) {
+ List<ItemStack> stackList = new ArrayList<>();
+ for (int i = 0; i < maximumMaterialIndex; i++) {
+ stackList.add(getLayerOre(veinLayer, i));
+ }
+ return stackList;
+ }
+
+ public ItemStack getLayerOre(int veinLayer, int materialIndex) {
+ return new ItemStack(GregTech_API.sBlockOres1, 1, Meta[veinLayer] + materialIndex * 1000);
+ }
+
+ public boolean containsOre(short materialIndex) {
+ return Meta[VEIN_PRIMARY] == materialIndex || Meta[VEIN_SECONDARY] == materialIndex
+ || Meta[VEIN_BETWEEN] == materialIndex
+ || Meta[VEIN_SPORADIC] == materialIndex;
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java
new file mode 100644
index 0000000000..8a150967a0
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5OreSmallHelper.java
@@ -0,0 +1,195 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import static pers.gwyog.gtneioreplugin.util.GT5CFGHelper.oreVeinNotInAnyDim;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.objects.ItemData;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.world.GT_Worldgen;
+import gregtech.common.GT_Worldgen_GT_Ore_SmallPieces;
+
+public class GT5OreSmallHelper {
+
+ private static final int SMALL_ORE_BASE_META = 16000;
+ public static boolean restrictBiomeSupport = false;
+ public static final List<ItemStack> oreSmallList = new ArrayList<>();
+ public static final HashMap<String, OreSmallWrapper> mapOreSmallWrapper = new HashMap<>();
+ public static final HashMap<String, Short> mapOreDropUnlocalizedNameToOreMeta = new HashMap<>();
+ public static final HashMap<Short, List<ItemStack>> mapOreMetaToOreDrops = new HashMap<>();
+ public static final HashMap<OreSmallWrapper, String> bufferedDims = new HashMap<>();
+ public static final HashMap<String, SmallOreDimensionWrapper> dimToSmallOreWrapper = new HashMap<>();
+
+ public static class SmallOreDimensionWrapper {
+
+ public final ArrayList<OreSmallWrapper> internalDimOreList = new ArrayList<>();
+ public final HashMap<OreSmallWrapper, Double> oreVeinToProbabilityInDimension = new HashMap<>();
+
+ // Calculate all weights of ore veins once dimension is initialised.
+ private void calculateWeights() {
+ int totalWeight = 0;
+ for (OreSmallWrapper oreVein : internalDimOreList) {
+ totalWeight += oreVein.amountPerChunk;
+ }
+ for (OreSmallWrapper oreVein : internalDimOreList) {
+ oreVeinToProbabilityInDimension
+ .put(oreVein, ((double) oreVein.amountPerChunk) / ((double) totalWeight));
+ }
+ }
+ }
+
+ public static void init() {
+ checkExtraSupport();
+ ItemStack stack;
+ Materials material;
+ short meta;
+ for (GT_Worldgen worldGen : GregTech_API.sWorldgenList)
+ if (worldGen.mWorldGenName.startsWith("ore.small.") && worldGen instanceof GT_Worldgen_GT_Ore_SmallPieces) {
+ GT_Worldgen_GT_Ore_SmallPieces worldGenSmallPieces = (GT_Worldgen_GT_Ore_SmallPieces) worldGen;
+ meta = worldGenSmallPieces.mMeta;
+ if (meta < 0) break;
+ material = GregTech_API.sGeneratedMaterials[meta];
+ mapOreSmallWrapper.put(worldGen.mWorldGenName, new OreSmallWrapper(worldGenSmallPieces));
+ if (!mapOreMetaToOreDrops.containsKey(meta)) {
+ List<ItemStack> stackList = new ArrayList<>();
+ stack = GT_OreDictUnificator.get(
+ OrePrefixes.gemExquisite,
+ material,
+ GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L),
+ 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(
+ OrePrefixes.gemFlawless,
+ material,
+ GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L),
+ 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(OrePrefixes.gem, material, 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(
+ OrePrefixes.gemFlawed,
+ material,
+ GT_OreDictUnificator.get(OrePrefixes.crushed, material, 1L),
+ 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(OrePrefixes.crushed, material, 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(
+ OrePrefixes.gemChipped,
+ material,
+ GT_OreDictUnificator.get(OrePrefixes.dustImpure, material, 1L),
+ 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ stack = GT_OreDictUnificator.get(OrePrefixes.dustImpure, material, 1L);
+ if (stack != null && !mapOreDropUnlocalizedNameToOreMeta.containsKey(stack.getUnlocalizedName())) {
+ mapOreDropUnlocalizedNameToOreMeta.put(stack.getUnlocalizedName(), meta);
+ stackList.add(stack);
+ }
+ oreSmallList.add(new ItemStack(GregTech_API.sBlockOres1, 1, meta + SMALL_ORE_BASE_META));
+ mapOreMetaToOreDrops.put(meta, stackList);
+ }
+ }
+ for (OreSmallWrapper oreSmallWrapper : mapOreSmallWrapper.values()) {
+ bufferedDims.put(oreSmallWrapper, GT5CFGHelper.GT5CFGSmallOres(oreSmallWrapper.oreGenName));
+ }
+
+ // --- Handling of dimToOreWrapper ---
+
+ // Get dims as "Ow,Ne,Ma" etc.
+ bufferedDims.forEach((veinInfo, dims) -> {
+ if (dims.equals(oreVeinNotInAnyDim)) {
+ return;
+ }
+
+ for (String dim : dims.split(",")) {
+ if (!dim.isEmpty()) {
+ SmallOreDimensionWrapper dimensionSmallOres = dimToSmallOreWrapper
+ .getOrDefault(dim, new SmallOreDimensionWrapper());
+ dimensionSmallOres.internalDimOreList.add(veinInfo);
+ dimToSmallOreWrapper.put(dim, dimensionSmallOres);
+ }
+ }
+
+ // Calculate probabilities for each dim.
+ for (String dim : dimToSmallOreWrapper.keySet()) {
+ dimToSmallOreWrapper.get(dim).calculateWeights();
+ }
+ });
+ // --- End of handling for dimToOreWrapper ---
+ }
+
+ private static void checkExtraSupport() {
+ Class<?> clazzGTOreSmall = null;
+ try {
+ clazzGTOreSmall = Class.forName("gregtech.common" + ".GT_Worldgen_GT_Ore_SmallPieces");
+ } catch (ClassNotFoundException ignored) {}
+ if (clazzGTOreSmall != null) {
+ try {
+ clazzGTOreSmall.getField("mRestrictBiome");
+ restrictBiomeSupport = true;
+ } catch (Exception ignored) {}
+ }
+ }
+
+ public static Materials[] getDroppedDusts() {
+ return new Materials[] { Materials.Stone, Materials.Netherrack, Materials.Endstone, Materials.GraniteBlack,
+ Materials.GraniteRed, Materials.Marble, Materials.Basalt, Materials.Stone };
+ }
+
+ public static class OreSmallWrapper {
+
+ public final String oreGenName;
+ public final short oreMeta;
+ public final String worldGenHeightRange;
+ public final short amountPerChunk;
+
+ @SuppressWarnings("unused")
+ public Materials getOreMaterial() {
+ return oreMaterial;
+ }
+
+ private final Materials oreMaterial;
+
+ public OreSmallWrapper(GT_Worldgen_GT_Ore_SmallPieces worldGen) {
+ this.oreGenName = worldGen.mWorldGenName;
+ this.oreMeta = worldGen.mMeta;
+ this.worldGenHeightRange = worldGen.mMinY + "-" + worldGen.mMaxY;
+ this.amountPerChunk = worldGen.mAmount;
+ ItemData oreData = GT_OreDictUnificator
+ .getAssociation(new ItemStack(GregTech_API.sBlockOres1, 1, worldGen.mMeta));
+ this.oreMaterial = oreData != null ? oreData.mMaterial.mMaterial : null;
+ }
+
+ public List<ItemStack> getMaterialDrops(int maximumIndex) {
+ List<ItemStack> stackList = new ArrayList<>();
+ for (int i = 0; i < maximumIndex; i++)
+ stackList.add(new ItemStack(GregTech_API.sBlockOres1, 1, oreMeta + SMALL_ORE_BASE_META + i * 1000));
+ return stackList;
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/GT5UndergroundFluidHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5UndergroundFluidHelper.java
new file mode 100644
index 0000000000..85c4ee3004
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/GT5UndergroundFluidHelper.java
@@ -0,0 +1,146 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import static pers.gwyog.gtneioreplugin.GTNEIOrePlugin.LOG;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+
+import com.google.common.collect.BiMap;
+
+import gregtech.GT_Mod;
+import gregtech.api.objects.GT_UO_Dimension;
+import gregtech.api.objects.GT_UO_DimensionList;
+import gregtech.api.objects.GT_UO_Fluid;
+
+public class GT5UndergroundFluidHelper {
+
+ /**
+ * Need to store fluid name instead of fluid because fluid instance might be different between gas and liquid
+ */
+ private static final Map<String, List<UndergroundFluidWrapper>> fluidMap = new HashMap<>();
+
+ @SuppressWarnings("unchecked")
+ public static void init() {
+ try {
+ Field fieldDimensionList = GT_UO_DimensionList.class.getDeclaredField("fDimensionList");
+ fieldDimensionList.setAccessible(true);
+ BiMap<String, GT_UO_Dimension> dimensionList = (BiMap<String, GT_UO_Dimension>) fieldDimensionList
+ .get(GT_Mod.gregtechproxy.mUndergroundOil);
+ for (Map.Entry<String, GT_UO_Dimension> dimensionEntry : dimensionList.entrySet()) {
+ String rawDimension = dimensionEntry.getKey();
+ String dimension;
+ try {
+ dimension = getDimensionFromID(Integer.parseInt(rawDimension));
+ } catch (NumberFormatException ignored) {
+ dimension = getDimensionForEdgeCase(rawDimension);
+ if (dimension == null) {
+ for (int i = 0; i < DimensionHelper.DimNameTrimmed.length; i++) {
+ if (DimensionHelper.DimNameTrimmed[i].equalsIgnoreCase(rawDimension)) {
+ dimension = DimensionHelper.DimNameDisplayed[i];
+ break;
+ }
+ }
+ }
+ }
+ if (dimension == null) {
+ LOG.warn("Unknown dimension found in GT5 config: " + rawDimension);
+ continue;
+ }
+
+ Field fieldFluids = GT_UO_Dimension.class.getDeclaredField("fFluids");
+ fieldFluids.setAccessible(true);
+ BiMap<String, GT_UO_Fluid> fluids = (BiMap<String, GT_UO_Fluid>) fieldFluids
+ .get(dimensionEntry.getValue());
+
+ int maxChance = 0;
+ for (Map.Entry<String, GT_UO_Fluid> fluidEntry : fluids.entrySet()) {
+ maxChance += fluidEntry.getValue().Chance;
+ }
+
+ for (Map.Entry<String, GT_UO_Fluid> fluidEntry : fluids.entrySet()) {
+ Fluid fluid = FluidRegistry.getFluid(fluidEntry.getKey());
+ if (fluid != null) {
+ UndergroundFluidWrapper wrapper = new UndergroundFluidWrapper(
+ dimension,
+ fluidEntry.getValue().Chance * 10000 / maxChance,
+ fluidEntry.getValue().MaxAmount,
+ fluidEntry.getValue().MinAmount);
+ if (fluidMap.containsKey(fluid.getName())) {
+ fluidMap.get(fluid.getName()).add(wrapper);
+ } else {
+ fluidMap.put(fluid.getName(), new ArrayList<>(Collections.singletonList(wrapper)));
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ for (List<UndergroundFluidWrapper> wrappers : fluidMap.values()) {
+ wrappers.sort(
+ Comparator.comparingInt(w -> Arrays.asList(DimensionHelper.DimNameDisplayed).indexOf(w.dimension)));
+ }
+ }
+
+ public static List<UndergroundFluidWrapper> getEntry(String fluidName) {
+ return fluidMap.get(fluidName);
+ }
+
+ public static Map<String, List<UndergroundFluidWrapper>> getAllEntries() {
+ return fluidMap;
+ }
+
+ @SuppressWarnings("SwitchStatementWithTooFewBranches")
+ private static String getDimensionFromID(int id) {
+ return switch (id) {
+ case 0 -> "Ow";
+ default -> null;
+ };
+ }
+
+ private static String getDimensionForEdgeCase(String rawDimension) {
+ return switch (rawDimension) {
+ case "aCentauriBb" -> "CB";
+ case "BarnardaC" -> "BC";
+ case "BarnardaE" -> "BE";
+ case "BarnardaF" -> "BF";
+ case "TCetiE" -> "TE";
+ default -> {
+ LOG.warn("Unknown dimension name while parsing: " + rawDimension);
+ yield null;
+ }
+ };
+ }
+
+ public static class UndergroundFluidWrapper {
+
+ /**
+ * Using {@link DimensionHelper#DimNameDisplayed}
+ */
+ public final String dimension;
+ /**
+ * Chance of this fluid field being generated. 10000 means 100% of the dimension
+ */
+ public final int chance;
+
+ public final int maxAmount;
+ public final int minAmount;
+
+ public UndergroundFluidWrapper(String dimension, int chance, int maxAmount, int minAmount) {
+ this.dimension = dimension;
+ this.chance = chance;
+ this.maxAmount = maxAmount;
+ this.minAmount = minAmount;
+ }
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/OreVeinLayer.java b/src/main/java/pers/gwyog/gtneioreplugin/util/OreVeinLayer.java
new file mode 100644
index 0000000000..bc32f2ce46
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/OreVeinLayer.java
@@ -0,0 +1,18 @@
+package pers.gwyog.gtneioreplugin.util;
+
+public class OreVeinLayer {
+
+ public static final int VEIN_PRIMARY = 0;
+ public static final int VEIN_SECONDARY = 1;
+ public static final int VEIN_BETWEEN = 2;
+ public static final int VEIN_SPORADIC = 3;
+
+ private static final String[] LAYER_NAMES = { "gtnop.gui.nei.primaryOre", "gtnop.gui.nei.secondaryOre",
+ "gtnop.gui.nei.betweenOre", "gtnop.gui" + ".nei.sporadicOre" };
+
+ public static String getOreVeinLayerName(int layerId) {
+ return LAYER_NAMES[layerId];
+ }
+
+ private OreVeinLayer() {}
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java b/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java
new file mode 100644
index 0000000000..401cadc09f
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/Oremix.java
@@ -0,0 +1,600 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import com.opencsv.bean.CsvBindByName;
+import com.opencsv.bean.CsvCustomBindByName;
+
+@SuppressWarnings("unused")
+public class Oremix {
+
+ @CsvCustomBindByName(column = "Moon", converter = XtoBool.class)
+ public boolean mo;
+
+ @CsvCustomBindByName(column = "End Asteroids", converter = XtoBool.class)
+ public boolean ea;
+
+ @CsvCustomBindByName(column = "AstroidBelt", converter = XtoBool.class)
+ public boolean as;
+
+ @CsvCustomBindByName(column = "Barnard C", converter = XtoBool.class)
+ public boolean bc;
+
+ @CsvCustomBindByName(column = "Barnard E", converter = XtoBool.class)
+ public boolean be;
+
+ @CsvCustomBindByName(column = "Barnard F", converter = XtoBool.class)
+ public boolean bf;
+
+ @CsvCustomBindByName(column = "Mars", converter = XtoBool.class)
+ public boolean ma;
+
+ @CsvCustomBindByName(column = "Callisto", converter = XtoBool.class)
+ public boolean ca;
+
+ @CsvCustomBindByName(column = "Centauri Bb", converter = XtoBool.class)
+ public boolean cb;
+
+ @CsvCustomBindByName(column = "Ceres", converter = XtoBool.class)
+ public boolean ce;
+
+ @CsvCustomBindByName(column = "Twilight Forest", converter = XtoBool.class)
+ public boolean tf;
+
+ @CsvCustomBindByName(column = "Deep Dark", converter = XtoBool.class)
+ public boolean dd;
+
+ @CsvCustomBindByName(column = "Phobos", converter = XtoBool.class)
+ public boolean ph;
+
+ @CsvCustomBindByName(column = "Deimos", converter = XtoBool.class)
+ public boolean de;
+
+ @CsvCustomBindByName(column = "Europa", converter = XtoBool.class)
+ public boolean eu;
+
+ @CsvCustomBindByName(column = "Ganymede", converter = XtoBool.class)
+ public boolean ga;
+
+ @CsvCustomBindByName(column = "Io", converter = XtoBool.class)
+ public boolean io;
+
+ @CsvCustomBindByName(column = "Venus", converter = XtoBool.class)
+ public boolean ve;
+
+ @CsvCustomBindByName(column = "Mercury", converter = XtoBool.class)
+ public boolean me;
+
+ @CsvCustomBindByName(column = "Enceladus", converter = XtoBool.class)
+ public boolean en;
+
+ @CsvCustomBindByName(column = "Titan", converter = XtoBool.class)
+ public boolean ti;
+
+ @CsvCustomBindByName(column = "Miranda", converter = XtoBool.class)
+ public boolean mi;
+
+ @CsvCustomBindByName(column = "Oberon", converter = XtoBool.class)
+ public boolean ob;
+
+ @CsvCustomBindByName(column = "Triton", converter = XtoBool.class)
+ public boolean tr;
+
+ @CsvCustomBindByName(column = "Proteus", converter = XtoBool.class)
+ public boolean pr;
+
+ @CsvCustomBindByName(column = "Pluto", converter = XtoBool.class)
+ public boolean pl;
+
+ @CsvCustomBindByName(column = "Kuiper Belt", converter = XtoBool.class)
+ public boolean kb;
+
+ @CsvCustomBindByName(column = "Haumea", converter = XtoBool.class)
+ public boolean ha;
+
+ @CsvCustomBindByName(column = "Makemake", converter = XtoBool.class)
+ public boolean make;
+
+ @CsvCustomBindByName(column = "Vega B", converter = XtoBool.class)
+ public boolean vb;
+
+ @CsvCustomBindByName(column = "T Ceti E", converter = XtoBool.class)
+ public boolean tcetie;
+
+ @CsvCustomBindByName(column = "Anubis", required = false, converter = XtoBool.class)
+ public boolean an;
+
+ @CsvCustomBindByName(column = "Horus", required = false, converter = XtoBool.class)
+ public boolean ho;
+
+ @CsvCustomBindByName(column = "Neper", required = false, converter = XtoBool.class)
+ public boolean np;
+
+ @CsvCustomBindByName(column = "Maahes", required = false, converter = XtoBool.class)
+ public boolean mh;
+
+ @CsvCustomBindByName(column = "Mehen Belt", required = false, converter = XtoBool.class)
+ public boolean mb;
+
+ @CsvCustomBindByName(column = "Seth", required = false, converter = XtoBool.class)
+ public boolean se;
+
+ @CsvCustomBindByName(column = "Ore Name", required = true, converter = Veinrenamer.class)
+ private String oreName;
+
+ @CsvBindByName(column = "Primary")
+ private String primary = "";
+
+ @CsvBindByName(column = "Secondary")
+ private String secondary = "";
+
+ @CsvBindByName(column = "Inbetween")
+ private String inbetween = "";
+
+ @CsvBindByName(column = "Around")
+ private String around = "";
+
+ @CsvBindByName(column = "ID ")
+ private String mix = "";
+
+ @CsvBindByName(column = "Tier")
+ private String tier = "";
+
+ @CsvBindByName(column = "Height")
+ private String height = "";
+
+ @CsvBindByName(column = "Density")
+ private int density;
+
+ @CsvBindByName(column = "Size")
+ private int size;
+
+ @CsvBindByName(column = "Weight")
+ private int weight;
+
+ @CsvCustomBindByName(column = "Overworld", converter = XtoBool.class)
+ private boolean overworld;
+
+ @CsvCustomBindByName(column = "Nether", converter = XtoBool.class)
+ private boolean nether;
+
+ @CsvCustomBindByName(column = "End", converter = XtoBool.class)
+ private boolean end;
+
+ private int miny, maxy;
+
+ public Oremix() {}
+
+ public boolean isMo() {
+ return mo;
+ }
+
+ public void setMo(boolean mo) {
+ this.mo = mo;
+ }
+
+ public boolean isEa() {
+ return ea;
+ }
+
+ public void setEa(boolean ea) {
+ this.ea = ea;
+ }
+
+ public boolean isAs() {
+ return as;
+ }
+
+ public void setAs(boolean as) {
+ this.as = as;
+ }
+
+ public boolean isBc() {
+ return bc;
+ }
+
+ public void setBc(boolean bc) {
+ this.bc = bc;
+ }
+
+ public boolean isBe() {
+ return be;
+ }
+
+ public void setBe(boolean be) {
+ this.be = be;
+ }
+
+ public boolean isBf() {
+ return bf;
+ }
+
+ public void setBf(boolean bf) {
+ this.bf = bf;
+ }
+
+ public boolean isMa() {
+ return ma;
+ }
+
+ public void setMa(boolean ma) {
+ this.ma = ma;
+ }
+
+ public boolean isCa() {
+ return ca;
+ }
+
+ public void setCa(boolean ca) {
+ this.ca = ca;
+ }
+
+ public boolean isCb() {
+ return cb;
+ }
+
+ public void setCb(boolean cb) {
+ this.cb = cb;
+ }
+
+ public boolean isCe() {
+ return ce;
+ }
+
+ public void setCe(boolean ce) {
+ this.ce = ce;
+ }
+
+ public boolean isTf() {
+ return tf;
+ }
+
+ public void setTf(boolean tf) {
+ this.tf = tf;
+ }
+
+ public boolean isDd() {
+ return dd;
+ }
+
+ public void setDd(boolean dd) {
+ this.dd = dd;
+ }
+
+ public boolean isPh() {
+ return ph;
+ }
+
+ public void setPh(boolean ph) {
+ this.ph = ph;
+ }
+
+ public boolean isDe() {
+ return de;
+ }
+
+ public void setDe(boolean de) {
+ this.de = de;
+ }
+
+ public boolean isEu() {
+ return eu;
+ }
+
+ public void setEu(boolean eu) {
+ this.eu = eu;
+ }
+
+ public boolean isGa() {
+ return ga;
+ }
+
+ public void setGa(boolean ga) {
+ this.ga = ga;
+ }
+
+ public boolean isIo() {
+ return io;
+ }
+
+ public void setIo(boolean io) {
+ this.io = io;
+ }
+
+ public boolean isVe() {
+ return ve;
+ }
+
+ public void setVe(boolean ve) {
+ this.ve = ve;
+ }
+
+ public boolean isMe() {
+ return me;
+ }
+
+ public void setMe(boolean me) {
+ this.me = me;
+ }
+
+ public boolean isEn() {
+ return en;
+ }
+
+ public void setEn(boolean en) {
+ this.en = en;
+ }
+
+ public boolean isTi() {
+ return ti;
+ }
+
+ public void setTi(boolean ti) {
+ this.ti = ti;
+ }
+
+ public boolean isMi() {
+ return mi;
+ }
+
+ public void setMi(boolean mi) {
+ this.mi = mi;
+ }
+
+ public boolean isOb() {
+ return ob;
+ }
+
+ public void setOb(boolean ob) {
+ this.ob = ob;
+ }
+
+ public boolean isTr() {
+ return tr;
+ }
+
+ public void setTr(boolean tr) {
+ this.tr = tr;
+ }
+
+ public boolean isPr() {
+ return pr;
+ }
+
+ public void setPr(boolean pr) {
+ this.pr = pr;
+ }
+
+ public boolean isPl() {
+ return pl;
+ }
+
+ public void setPl(boolean pl) {
+ this.pl = pl;
+ }
+
+ public boolean isKb() {
+ return kb;
+ }
+
+ public void setKb(boolean kb) {
+ this.kb = kb;
+ }
+
+ public boolean isHa() {
+ return ha;
+ }
+
+ public void setHa(boolean ha) {
+ this.ha = ha;
+ }
+
+ public boolean isMake() {
+ return make;
+ }
+
+ public void setMake(boolean make) {
+ this.make = make;
+ }
+
+ public boolean isVb() {
+ return vb;
+ }
+
+ public void setVb(boolean vb) {
+ this.vb = vb;
+ }
+
+ public boolean isTcetie() {
+ return tcetie;
+ }
+
+ public void setTcetie(boolean tcetie) {
+ this.tcetie = tcetie;
+ }
+
+ public boolean isAn() {
+ return an;
+ }
+
+ public void setAn(boolean an) {
+ this.an = an;
+ }
+
+ public boolean isHo() {
+ return ho;
+ }
+
+ public void setHo(boolean ho) {
+ this.ho = ho;
+ }
+
+ public boolean isNp() {
+ return np;
+ }
+
+ public void setNp(boolean np) {
+ this.np = np;
+ }
+
+ public boolean isMh() {
+ return mh;
+ }
+
+ public void setMh(boolean mh) {
+ this.mh = mh;
+ }
+
+ public boolean isMb() {
+ return mb;
+ }
+
+ public void setMb(boolean mb) {
+ this.mb = mb;
+ }
+
+ public boolean isSe() {
+ return se;
+ }
+
+ public void setSe(boolean se) {
+ this.se = se;
+ }
+
+ public String getOreName() {
+ return this.oreName;
+ }
+
+ public void setOreName(String s) {
+ this.oreName = s;
+ }
+
+ public String getPrimary() {
+ return this.primary;
+ }
+
+ public void setPrimary(String s) {
+ this.primary = s;
+ }
+
+ public String getSecondary() {
+ return this.secondary;
+ }
+
+ public void setSecondary(String s) {
+ this.secondary = s;
+ }
+
+ public String getInbetween() {
+ return this.inbetween;
+ }
+
+ public void setInbetween(String s) {
+ this.inbetween = s;
+ }
+
+ public String getAround() {
+ return this.around;
+ }
+
+ public void setAround(String s) {
+ this.around = s;
+ }
+
+ public String getMix() {
+ return this.mix;
+ }
+
+ public void setMix(String s) {
+ this.mix = s;
+ }
+
+ public String getTier() {
+ return this.tier;
+ }
+
+ public void setTier(String s) {
+ this.tier = s;
+ }
+
+ public String getHeight() {
+ return this.height;
+ }
+
+ public void setHeight(String s) {
+ this.height = s;
+ }
+
+ public int getDensity() {
+ return this.density;
+ }
+
+ public void setDensity(int i) {
+ this.density = i;
+ }
+
+ public int getSize() {
+ return this.size;
+ }
+
+ public void setSize(int i) {
+ this.size = i;
+ }
+
+ public int getWeight() {
+ return this.weight;
+ }
+
+ public void setWeight(int i) {
+ this.weight = i;
+ }
+
+ public int getMinY() {
+ calculateminmax();
+ return this.miny;
+ }
+
+ public void setMinY(int i) {
+ this.miny = i;
+ }
+
+ public int getMaxY() {
+ calculateminmax();
+ return this.maxy;
+ }
+
+ public void setMaxY(int i) {
+ this.maxy = i;
+ }
+
+ public boolean getOverworld() {
+ return this.overworld;
+ }
+
+ public void setOverworld(boolean s) {
+ this.overworld = s;
+ }
+
+ public boolean getNether() {
+ return this.nether;
+ }
+
+ public void setNether(boolean s) {
+ this.nether = s;
+ }
+
+ public boolean getEnd() {
+ return this.end;
+ }
+
+ public void setEnd(boolean s) {
+ this.end = s;
+ }
+
+ private void calculateminmax() {
+ this.miny = Integer.parseInt(this.height.split("-")[0]);
+ this.maxy = Integer.parseInt(this.height.split("-")[1]);
+ }
+
+ public String getHeightcalced() {
+ return this.miny + "-" + this.maxy;
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/StringPaddingHack.java b/src/main/java/pers/gwyog/gtneioreplugin/util/StringPaddingHack.java
new file mode 100644
index 0000000000..0b1d391a08
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/StringPaddingHack.java
@@ -0,0 +1,131 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import java.util.Arrays;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+
+import com.google.common.base.Strings;
+
+public class StringPaddingHack {
+
+ private static final int SPACE_WIDTH = 4;
+ private static final int BOLD_SPACE_WIDTH = 5;
+
+ /**
+ * Given a list of strings, arrange them into the requested number of columns with the specified spacing. Up to 3
+ * additional spaces might be added between columns because this function relies on quirky font behaviors.
+ *
+ * @param strings List of strings to wrap into columns
+ * @param numColumns Number of columns, minimum of 1
+ * @param minColumnSpacing Minimum amount of extra spaces between columns.
+ * @return strings wrapped into columns
+ */
+ public static String[] stringsToSpacedColumns(String[] strings, int numColumns, int minColumnSpacing) {
+ if (numColumns < 1) {
+ throw new IllegalArgumentException(
+ String.format("Argument numColumns must be 1 or higher, got value %d", numColumns));
+ }
+ if (numColumns > 1) {
+ int sliceSize = strings.length / numColumns;
+ int remainder = strings.length % numColumns;
+ String[][] columns = new String[numColumns][];
+ int totalExtra = 0;
+
+ // Arrange all strings into their proper columns so that the list of strings wraps through all columns
+ for (int i = 0; i < numColumns; i++) {
+ int extra = 0;
+ if (remainder > 0) {
+ remainder--;
+ extra = 1;
+ }
+ columns[i] = Arrays
+ .copyOfRange(strings, (sliceSize * i) + totalExtra, (sliceSize * (i + 1) + totalExtra + extra));
+
+ totalExtra += extra;
+ }
+
+ // Add extra padding to all but the last columns to align the text
+ for (int i = 0; i < numColumns - 1; i++) {
+ columns[i] = padStrings(columns[i], minColumnSpacing);
+ }
+
+ // Concatenate all columns into the final result
+ strings = columns[0];
+ for (int i = 0; i < sliceSize; i++) {
+ for (int j = 1; j < numColumns; j++) {
+ strings[i] += columns[j][i];
+ }
+ }
+ }
+
+ return strings;
+ }
+
+ /**
+ * Pads strings with spaces so that they are of equal length and adds to that the number of spaces specified and up
+ * to 3 if minExtraSpaces is below 3. Added spaces might be bold.
+ * <p>
+ * Relies on the quirk of bold space characters being 1 pixel wider than regular space characters in the default
+ * font renderer.
+ *
+ * @param strings List of strings
+ * @param minExtraSpaces The minimum number of extra spaces to add
+ * @return Array of strings padded with spaces to an equal length
+ */
+ public static String[] padStrings(String[] strings, int minExtraSpaces) {
+ int[] widths = getStringWidths(strings);
+ int maxUnPaddedStrLength = 0;
+ int numSpacesAddedToLongestString = 0;
+ int maxPaddedStrLength = 0;
+
+ // Making string width a multiple of 4 by adding bold spaces of width 5
+ for (int i = 0; i < strings.length; i++) {
+ int mod = widths[i] % SPACE_WIDTH;
+ int numBoldSpacesToAdd = (SPACE_WIDTH - mod) % SPACE_WIDTH;
+
+ // Keep track of the number of spaces added to the longest string
+ if (widths[i] > maxUnPaddedStrLength) {
+ numSpacesAddedToLongestString = numBoldSpacesToAdd;
+ maxUnPaddedStrLength = widths[i];
+ }
+
+ strings[i] += "§l" + Strings.repeat(" ", numBoldSpacesToAdd) + "§r";
+ widths[i] += numBoldSpacesToAdd * BOLD_SPACE_WIDTH;
+
+ // Keep track of the current widest string we currently have
+ if (widths[i] > maxPaddedStrLength) {
+ maxPaddedStrLength = widths[i];
+ }
+ }
+
+ // Make sure we pad at least up to the desired number of spaces from the longest string
+ if (numSpacesAddedToLongestString < minExtraSpaces) {
+ maxPaddedStrLength += (minExtraSpaces - numSpacesAddedToLongestString) * SPACE_WIDTH;
+ }
+
+ // Add required spaces to equalize length of all strings to at least the target width
+ for (int i = 0; i < strings.length; i++) {
+ int numSpacesToAdd = (maxPaddedStrLength - widths[i]) / SPACE_WIDTH;
+ strings[i] += Strings.repeat(" ", numSpacesToAdd);
+ widths[i] += numSpacesToAdd * SPACE_WIDTH;
+ }
+
+ return strings;
+ }
+
+ /**
+ * Returns an array of font widths for the given array of strings
+ *
+ * @param strList Array of strings
+ * @return Array of font widths
+ */
+ protected static int[] getStringWidths(String[] strList) {
+ FontRenderer font = Minecraft.getMinecraft().fontRenderer;
+ int[] widths = new int[strList.length];
+ for (int i = 0; i < strList.length; ++i) {
+ widths[i] = font.getStringWidth(strList[i]);
+ }
+ return widths;
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java b/src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java
new file mode 100644
index 0000000000..346573e2a9
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/Veinrenamer.java
@@ -0,0 +1,23 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import com.opencsv.bean.AbstractBeanField;
+
+public class Veinrenamer<T> extends AbstractBeanField<T> {
+
+ @Override
+ protected Object convert(String value) {
+ String ret;
+ CharSequence s = "/";
+
+ if (value.contains(s)) {
+ ret = value.split("/")[1];
+ ret = ret.replaceAll("&", "");
+ ret = ret.replaceAll(" ", "");
+ ret = ret.replaceAll("\\.", "");
+ ret = ret.toLowerCase();
+ } else ret = value;
+ ret = ret.replaceAll(" ", "");
+ ret = ret.toLowerCase();
+ return ret;
+ }
+}
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java b/src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java
new file mode 100644
index 0000000000..f3426d53dd
--- /dev/null
+++ b/src/main/java/pers/gwyog/gtneioreplugin/util/XtoBool.java
@@ -0,0 +1,33 @@
+package pers.gwyog.gtneioreplugin.util;
+
+import java.util.ResourceBundle;
+
+import org.apache.commons.beanutils.ConversionException;
+import org.apache.commons.beanutils.Converter;
+import org.apache.commons.beanutils.converters.BooleanConverter;
+
+import com.opencsv.bean.AbstractBeanField;
+import com.opencsv.exceptions.CsvDataTypeMismatchException;
+
+public class XtoBool<T> extends AbstractBeanField<T> {
+
+ @Override
+ protected Object convert(String value) throws CsvDataTypeMismatchException {
+ if (value.isEmpty()) {
+ return null;
+ }
+ String[] trueStrings = { "x", "X" };
+ String[] falseStrings = { "" };
+ Converter bc = new BooleanConverter(trueStrings, falseStrings);
+ try {
+ return bc.convert(Boolean.class, value.trim());
+ } catch (ConversionException e) {
+ CsvDataTypeMismatchException csve = new CsvDataTypeMismatchException(
+ value,
+ field.getType(),
+ ResourceBundle.getBundle("convertGermanToBoolean", errorLocale).getString("input.not.boolean"));
+ csve.initCause(e);
+ throw csve;
+ }
+ }
+}
diff --git a/src/main/resources/assets/gtneioreplugin/lang/en_US.lang b/src/main/resources/assets/gtneioreplugin/lang/en_US.lang
new file mode 100644
index 0000000000..0540870c92
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/lang/en_US.lang
@@ -0,0 +1,101 @@
+# gui names
+gtnop.gui.veinStat.name=Vein Stats
+gtnop.gui.asteroidStat.name=Asteroid Stats
+gtnop.gui.smallOreStat.name=Small Ore Stats
+gtnop.gui.undergroundFluid.name=Underground Fluid Stats
+gtnop.gui.ieVeinStat.name=IE Vein Stats
+gtnop.gui.bedrockOreStat.name=Bedrock Ore Stats
+
+gtnop.gui.nei.veinName=Vein name
+gtnop.gui.nei.primaryOre=Primary
+gtnop.gui.nei.secondaryOre=Secondary
+gtnop.gui.nei.betweenOre=Between
+gtnop.gui.nei.sporadicOre=Sporadic
+gtnop.gui.nei.genHeight=Height
+gtnop.gui.nei.weightedChance=Weight
+gtnop.gui.nei.worldNames=Generated world
+gtnop.gui.nei.restrictBiome=Restricted biome
+gtnop.gui.nei.dimension=Dimension
+gtnop.gui.nei.chance=Chance
+gtnop.gui.nei.fluidAmount=Amount
+
+gtnop.gui.nei.asteroidPrimary=Main-Gen1
+gtnop.gui.nei.asteroidSecondary=Main-Gen2
+gtnop.gui.nei.asteroidBetween=Minor-Gen1
+gtnop.gui.nei.asteroidSporadic=Minor-Gen2
+
+gtnop.gui.nei.oreName=Ore name
+gtnop.gui.nei.amount=Amount per chunk
+gtnop.gui.nei.chanceDrops=Drops
+
+gtnop.gui.nei.ieVeinComponent=Vein components
+gtnop.gui.nei.fromMod=From mod
+
+gtnop.gui.nei.seeAll=See All
+gtnop.gui.nei.vein=Vein
+gtnop.gui.nei.oreOthers=Other ore
+gtnop.nei.genPosition=Position
+gtnop.nei.genPositionInfo=In the center of each chunk
+
+
+# world names
+gtnop.world.Overworld=Overworld
+gtnop.world.Nether=Nether
+gtnop.world.TheEnd=The End
+gtnop.world.Twilight=Twilight Forest
+gtnop.world.EndAsteroid=Far End Asteroids
+gtnop.world.Vanilla EndAsteroids=Vanilla End Asteroids
+gtnop.world.Moon=Moon
+gtnop.world.Mars=Mars
+gtnop.world.Phobos=Phobos
+gtnop.world.Deimos=Deimos
+gtnop.world.Asteroids=Asteroids
+gtnop.world.Ceres=Ceres
+gtnop.world.Europa=Europa
+gtnop.world.Ganymede=Ganymede
+gtnop.world.Callisto=Callisto
+gtnop.world.Ross128b=Ross128b
+gtnop.world.Io=Io
+gtnop.world.Venus=Venus
+gtnop.world.Mercury=Mercury
+gtnop.world.Enceladus=Enceladus
+gtnop.world.Titan=Titan
+gtnop.world.Ross128ba=Ross128ba
+gtnop.world.Miranda=Miranda
+gtnop.world.Oberon=Oberon
+gtnop.world.Proteus=Proteus
+gtnop.world.Triton=Triton
+gtnop.world.Pluto=Pluto
+gtnop.world.Kuiperbelt=Kuiper Belt
+gtnop.world.Haumea=Haumea
+gtnop.world.MakeMake=Makemake
+gtnop.world.CentauriA=α Centauri Bb
+gtnop.world.VegaB=Vega B
+gtnop.world.BarnardC=Barnard C
+gtnop.world.BarnardE=Barnard E
+gtnop.world.BarnardF=Barnard F
+gtnop.world.TcetiE=T Ceti E
+gtnop.world.Anubis=Anubis
+gtnop.world.MehenBelt=Mehen Belt
+gtnop.world.Horus=Horus
+gtnop.world.Maahes=Maahes
+gtnop.world.Neper=Neper
+gtnop.world.Seth=Seth
+gtnop.world.Underdark=Deep Dark
+
+
+# biome names
+gtnop.biome.none.name=None
+
+
+# ore names extra
+gtnop.ore.null.name=None
+
+
+# vein types
+gtnop.ore.vein.name=Vein
+gtnop.ore.asteroid.name=Asteriod
+gtnop.ore.custom.name=Custom
+
+# items
+itemGroup.gtneioreplugin=GT NEI Ore Plugin
diff --git a/src/main/resources/assets/gtneioreplugin/lang/zh_CN.lang b/src/main/resources/assets/gtneioreplugin/lang/zh_CN.lang
new file mode 100644
index 0000000000..4fe6e5fe32
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/lang/zh_CN.lang
@@ -0,0 +1,95 @@
+# gui names
+gtnop.gui.veinStat.name=矿脉信息
+gtnop.gui.asteroidStat.name=小行星信息
+gtnop.gui.smallOreStat.name=贫瘠矿石信息
+gtnop.gui.undergroundFluid.name=地下流体信息
+gtnop.gui.ieVeinStat.name=IE虚拟矿脉信息
+gtnop.gui.bedrockOreStat.name=基岩矿脉信息
+
+gtnop.gui.nei.veinName=矿脉名称
+gtnop.gui.nei.primaryOre=上层矿石
+gtnop.gui.nei.secondaryOre=下层矿石
+gtnop.gui.nei.betweenOre=中层矿石
+gtnop.gui.nei.sporadicOre=散乱分布
+gtnop.gui.nei.genHeight=生成高度
+gtnop.gui.nei.weightedChance=生成几率
+gtnop.gui.nei.worldNames=生成世界
+gtnop.gui.nei.restrictBiome=生物群系限制
+gtnop.gui.nei.dimension=维度
+gtnop.gui.nei.chance=几率
+gtnop.gui.nei.fluidAmount=储量
+
+gtnop.gui.nei.asteroidPrimary=主要生成一
+gtnop.gui.nei.asteroidSecondary=主要生成二
+gtnop.gui.nei.asteroidBetween=次要生成一
+gtnop.gui.nei.asteroidSporadic=次要生成二
+
+gtnop.gui.nei.oreName=矿石名称
+gtnop.gui.nei.amount=每区块生成个数
+gtnop.gui.nei.chanceDrops=几率掉落
+
+gtnop.gui.nei.ieVeinComponent=矿脉构成
+gtnop.gui.nei.fromMod=来自模组
+
+gtnop.gui.nei.seeAll=查看全部
+gtnop.gui.nei.vein=矿脉
+gtnop.gui.nei.oreOthers=伴随生成
+gtnop.nei.genPosition=生成位置
+gtnop.nei.genPositionInfo=各个区块的正中心
+
+
+# world names
+gtnop.world.Overworld=主世界
+gtnop.world.Nether=下界
+gtnop.world.TheEnd=末地
+gtnop.world.Twilight=暮色森林
+gtnop.world.EndAsteroid=末地小行星
+gtnop.world.Vanilla EndAsteroids=原版末地小行星
+gtnop.world.Moon=月球
+gtnop.world.Mars=火星
+gtnop.world.Phobos=火卫一
+gtnop.world.Deimos=火卫二
+gtnop.world.Asteroids=小行星带
+gtnop.world.Ceres=谷神星
+gtnop.world.Europa=木卫二
+gtnop.world.Ganymede=木卫三
+gtnop.world.Callisto=木卫四
+gtnop.world.Ross128b=罗斯128b
+gtnop.world.Io=木卫一
+gtnop.world.Venus=金星
+gtnop.world.Mercury=水星
+gtnop.world.Enceladus=土卫二
+gtnop.world.Titan=土卫六
+gtnop.world.Ross128ba=罗斯128ba
+gtnop.world.Miranda=天卫五
+gtnop.world.Oberon=天卫四
+gtnop.world.Proteus=海卫八
+gtnop.world.Triton=海卫一
+gtnop.world.Pluto=冥王星
+gtnop.world.Kuiperbelt=柯伊伯带
+gtnop.world.Haumea=妊神星
+gtnop.world.MakeMake=鸟神星
+gtnop.world.CentauriA=半人马Bb
+gtnop.world.VegaB=织女B
+gtnop.world.BarnardC=巴纳德C
+gtnop.world.BarnardE=巴纳德E
+gtnop.world.BarnardF=巴纳德F
+gtnop.world.TcetiE=鲸鱼座T星E
+gtnop.world.Underdark=漆黑世界
+
+
+# biome names
+gtnop.biome.none.name=无
+
+
+# ore names extra
+gtnop.ore.null.name=无
+
+
+# vein types
+gtnop.ore.vein.name=矿脉
+gtnop.ore.asteroid.name=小行星
+gtnop.ore.custom.name=自定义
+
+# items
+itemGroup.gtneioreplugin=GT NEI 矿物插件 \ No newline at end of file
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/An_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_back.png
new file mode 100644
index 0000000000..f2d08d0fdb
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/An_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_bottom.png
new file mode 100644
index 0000000000..f8d55a86d4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/An_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_front.png
new file mode 100644
index 0000000000..a1705da804
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/An_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_left.png
new file mode 100644
index 0000000000..f542adf34e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/An_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_right.png
new file mode 100644
index 0000000000..e6588b0d94
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/An_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_top.png
new file mode 100644
index 0000000000..bbd74fdeba
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/An_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/As_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_back.png
new file mode 100644
index 0000000000..61ed0f9cb0
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/As_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_bottom.png
new file mode 100644
index 0000000000..39c99cf717
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/As_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_front.png
new file mode 100644
index 0000000000..e624c07c5f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/As_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_left.png
new file mode 100644
index 0000000000..7a64cbc905
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/As_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_right.png
new file mode 100644
index 0000000000..f4b0df9941
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/As_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_top.png
new file mode 100644
index 0000000000..98302080d3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/As_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_back.png
new file mode 100644
index 0000000000..f0a18820b1
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_bottom.png
new file mode 100644
index 0000000000..ee1a36f5ec
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_front.png
new file mode 100644
index 0000000000..d899be871f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_left.png
new file mode 100644
index 0000000000..b183b6e8fa
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_right.png
new file mode 100644
index 0000000000..7b47de7bc7
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_top.png
new file mode 100644
index 0000000000..1d0cc9daa5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BC_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_back.png
new file mode 100644
index 0000000000..f1339bbe14
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_bottom.png
new file mode 100644
index 0000000000..468a07f371
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_front.png
new file mode 100644
index 0000000000..87d20dcc9c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_left.png
new file mode 100644
index 0000000000..7adbcec533
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_right.png
new file mode 100644
index 0000000000..73e0f18b2e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_top.png
new file mode 100644
index 0000000000..ce033b007c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BE_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_back.png
new file mode 100644
index 0000000000..8cf58d4533
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_bottom.png
new file mode 100644
index 0000000000..88caa50906
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_front.png
new file mode 100644
index 0000000000..a13ac2f873
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_left.png
new file mode 100644
index 0000000000..93f4dd0b78
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_right.png
new file mode 100644
index 0000000000..89724e99d7
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_top.png
new file mode 100644
index 0000000000..0c23684360
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/BF_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_back.png
new file mode 100644
index 0000000000..1fa9422861
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_bottom.png
new file mode 100644
index 0000000000..8fc7146a2b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_front.png
new file mode 100644
index 0000000000..e1169df0c3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_left.png
new file mode 100644
index 0000000000..2c03143156
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_right.png
new file mode 100644
index 0000000000..0944851f58
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_top.png
new file mode 100644
index 0000000000..0bd21bf137
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/CB_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_back.png
new file mode 100644
index 0000000000..32ba18f3ce
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_bottom.png
new file mode 100644
index 0000000000..aa16dbbd78
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_front.png
new file mode 100644
index 0000000000..7126c1e963
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_left.png
new file mode 100644
index 0000000000..0a30af13a2
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_right.png
new file mode 100644
index 0000000000..9edeb857a4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_top.png
new file mode 100644
index 0000000000..e373d0734e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ca_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_back.png
new file mode 100644
index 0000000000..12ab1359ff
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_bottom.png
new file mode 100644
index 0000000000..4a0338965d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_front.png
new file mode 100644
index 0000000000..0dca11d18e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_left.png
new file mode 100644
index 0000000000..9d1897eedd
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_right.png
new file mode 100644
index 0000000000..5cfa14ac0b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_top.png
new file mode 100644
index 0000000000..5004459c22
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ce_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_back.png
new file mode 100644
index 0000000000..c7b306e750
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_bottom.png
new file mode 100644
index 0000000000..84ebb4bfbf
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_front.png
new file mode 100644
index 0000000000..91154febb2
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_left.png
new file mode 100644
index 0000000000..1323c381d2
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_right.png
new file mode 100644
index 0000000000..42e38a869f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_top.png
new file mode 100644
index 0000000000..9d748b3ded
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/DD_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/De_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_back.png
new file mode 100644
index 0000000000..fa5166a961
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/De_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_bottom.png
new file mode 100644
index 0000000000..3365acefd5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/De_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_front.png
new file mode 100644
index 0000000000..8fe0377ced
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/De_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_left.png
new file mode 100644
index 0000000000..5925bf6f11
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/De_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_right.png
new file mode 100644
index 0000000000..19b930d22f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/De_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_top.png
new file mode 100644
index 0000000000..4ba16ec201
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/De_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_back.png
new file mode 100644
index 0000000000..4fa4468fb3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_bottom.png
new file mode 100644
index 0000000000..668874eb29
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_front.png
new file mode 100644
index 0000000000..9e74d13738
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_left.png
new file mode 100644
index 0000000000..36c3e029fb
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_right.png
new file mode 100644
index 0000000000..c0d0663c72
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_top.png
new file mode 100644
index 0000000000..aa95252b96
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/EA_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_back.png
new file mode 100644
index 0000000000..ccf2e31970
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_bottom.png
new file mode 100644
index 0000000000..712a4f5c72
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_front.png
new file mode 100644
index 0000000000..b300d3b81f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_left.png
new file mode 100644
index 0000000000..df9ce0c3ce
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_right.png
new file mode 100644
index 0000000000..e7a2ba020a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_top.png
new file mode 100644
index 0000000000..b18188ebd2
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/ED_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/En_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_back.png
new file mode 100644
index 0000000000..e1cf79d7e3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/En_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_bottom.png
new file mode 100644
index 0000000000..6ad83e05c3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/En_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_front.png
new file mode 100644
index 0000000000..04c9f5db89
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/En_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_left.png
new file mode 100644
index 0000000000..19bb05d552
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/En_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_right.png
new file mode 100644
index 0000000000..4a1ab27f86
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/En_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_top.png
new file mode 100644
index 0000000000..8c0377756e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/En_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_back.png
new file mode 100644
index 0000000000..9d52efeea2
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_bottom.png
new file mode 100644
index 0000000000..ba29c6d13b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_front.png
new file mode 100644
index 0000000000..c02f24a984
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_left.png
new file mode 100644
index 0000000000..4de79f1f18
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_right.png
new file mode 100644
index 0000000000..9f62b3aa4f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_top.png
new file mode 100644
index 0000000000..b0bd7eae95
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Eu_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_back.png
new file mode 100644
index 0000000000..04c7ec4737
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_bottom.png
new file mode 100644
index 0000000000..857a293309
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_front.png
new file mode 100644
index 0000000000..732d84b3b4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_left.png
new file mode 100644
index 0000000000..5986c2f26a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_right.png
new file mode 100644
index 0000000000..cb59b0fa58
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_top.png
new file mode 100644
index 0000000000..822569d011
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ga_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_back.png
new file mode 100644
index 0000000000..ee4f8aefd4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_bottom.png
new file mode 100644
index 0000000000..17f814a48a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_front.png
new file mode 100644
index 0000000000..e02495e47b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_left.png
new file mode 100644
index 0000000000..eb348f8de3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_right.png
new file mode 100644
index 0000000000..142c425b0d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_top.png
new file mode 100644
index 0000000000..24c4aa0e81
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ha_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_back.png
new file mode 100644
index 0000000000..8e699e8b8e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_bottom.png
new file mode 100644
index 0000000000..675cdcc06b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_front.png
new file mode 100644
index 0000000000..c651480787
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_left.png
new file mode 100644
index 0000000000..0127638df5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_right.png
new file mode 100644
index 0000000000..38ae1dcbf6
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_top.png
new file mode 100644
index 0000000000..d879ed670b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ho_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_back.png
new file mode 100644
index 0000000000..695e7dac06
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_bottom.png
new file mode 100644
index 0000000000..e651421c92
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_front.png
new file mode 100644
index 0000000000..2a8f827f35
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_left.png
new file mode 100644
index 0000000000..5dcd4ed08a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_right.png
new file mode 100644
index 0000000000..554a4e9c8f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_top.png
new file mode 100644
index 0000000000..1c890577b0
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Io_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_back.png
new file mode 100644
index 0000000000..8fd55e58f3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_bottom.png
new file mode 100644
index 0000000000..53b0b55f82
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_front.png
new file mode 100644
index 0000000000..bb7cb871a9
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_left.png
new file mode 100644
index 0000000000..5f695690f8
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_right.png
new file mode 100644
index 0000000000..7c1dcd796c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_top.png
new file mode 100644
index 0000000000..03cf93aa6b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/KB_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_back.png
new file mode 100644
index 0000000000..b8f380d5e3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_bottom.png
new file mode 100644
index 0000000000..06d72cf0e1
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_front.png
new file mode 100644
index 0000000000..2ea9491775
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_left.png
new file mode 100644
index 0000000000..691181cfc4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_right.png
new file mode 100644
index 0000000000..ad9b91bb1f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_top.png
new file mode 100644
index 0000000000..cb2c0fe5cc
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MB_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_back.png
new file mode 100644
index 0000000000..8475bb7dbd
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_bottom.png
new file mode 100644
index 0000000000..66c0b5d269
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_front.png
new file mode 100644
index 0000000000..cc0796433d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_left.png
new file mode 100644
index 0000000000..9b3630abae
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_right.png
new file mode 100644
index 0000000000..9b19739c89
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_top.png
new file mode 100644
index 0000000000..18a1199e21
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/MM_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_back.png
new file mode 100644
index 0000000000..04e3a7af10
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_bottom.png
new file mode 100644
index 0000000000..c4bc98c9ab
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_front.png
new file mode 100644
index 0000000000..a404bd111b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_left.png
new file mode 100644
index 0000000000..e3250ff058
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_right.png
new file mode 100644
index 0000000000..c2e82cd90a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_top.png
new file mode 100644
index 0000000000..7afef1ff44
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ma_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_back.png
new file mode 100644
index 0000000000..4b1ab42f44
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_bottom.png
new file mode 100644
index 0000000000..19686ed29d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_front.png
new file mode 100644
index 0000000000..ca62560d53
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_left.png
new file mode 100644
index 0000000000..a466dac504
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_right.png
new file mode 100644
index 0000000000..1e5256822a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_top.png
new file mode 100644
index 0000000000..91187d25b5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Me_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_back.png
new file mode 100644
index 0000000000..56ff32dfbf
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_bottom.png
new file mode 100644
index 0000000000..1aa6abb122
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_front.png
new file mode 100644
index 0000000000..ad2381fb3d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_left.png
new file mode 100644
index 0000000000..7d6574c5aa
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_right.png
new file mode 100644
index 0000000000..4d17b0f85d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_top.png
new file mode 100644
index 0000000000..c3649e7737
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mh_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_back.png
new file mode 100644
index 0000000000..1b3cbbb6fe
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_bottom.png
new file mode 100644
index 0000000000..c67b1d6a4e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_front.png
new file mode 100644
index 0000000000..b9094df955
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_left.png
new file mode 100644
index 0000000000..d0d1d621f8
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_right.png
new file mode 100644
index 0000000000..51e91065dd
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_top.png
new file mode 100644
index 0000000000..eccb730ea4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mi_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_back.png
new file mode 100644
index 0000000000..5b7c2e227c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_bottom.png
new file mode 100644
index 0000000000..0b738fef18
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_front.png
new file mode 100644
index 0000000000..5d926bb7d4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_left.png
new file mode 100644
index 0000000000..e9d8867322
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_right.png
new file mode 100644
index 0000000000..d230130103
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_top.png
new file mode 100644
index 0000000000..95979ed8e9
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Mo_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_back.png
new file mode 100644
index 0000000000..5b0f798e88
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_bottom.png
new file mode 100644
index 0000000000..cbd51db421
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_front.png
new file mode 100644
index 0000000000..01c2a40b66
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_left.png
new file mode 100644
index 0000000000..4a976ce376
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_right.png
new file mode 100644
index 0000000000..bd994ac25c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_top.png
new file mode 100644
index 0000000000..7865ff41c8
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ne_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_back.png
new file mode 100644
index 0000000000..82dfcb0e88
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_bottom.png
new file mode 100644
index 0000000000..5de92b4ef7
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_front.png
new file mode 100644
index 0000000000..79c8f0b72f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_left.png
new file mode 100644
index 0000000000..3368e3469f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_right.png
new file mode 100644
index 0000000000..9410ff9c36
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_top.png
new file mode 100644
index 0000000000..ec9270bd47
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Np_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_back.png
new file mode 100644
index 0000000000..30ef66e57e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_bottom.png
new file mode 100644
index 0000000000..c4047b475f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_front.png
new file mode 100644
index 0000000000..ab356203a5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_left.png
new file mode 100644
index 0000000000..8703ee5790
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_right.png
new file mode 100644
index 0000000000..3bacd63ab7
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_top.png
new file mode 100644
index 0000000000..58ead2babc
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ob_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_back.png
new file mode 100644
index 0000000000..d95dc2445a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_bottom.png
new file mode 100644
index 0000000000..3b37660ece
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_front.png
new file mode 100644
index 0000000000..bc9483935f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_left.png
new file mode 100644
index 0000000000..4c2182926c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_right.png
new file mode 100644
index 0000000000..c6331fe528
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_top.png
new file mode 100644
index 0000000000..e4dcf20613
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ow_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_back.png
new file mode 100644
index 0000000000..b319f77587
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_bottom.png
new file mode 100644
index 0000000000..663e45fa9a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_front.png
new file mode 100644
index 0000000000..a0774b7d97
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_left.png
new file mode 100644
index 0000000000..40e5bda10d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_right.png
new file mode 100644
index 0000000000..ba983a38d5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_top.png
new file mode 100644
index 0000000000..f236cd8777
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ph_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_back.png
new file mode 100644
index 0000000000..a4ae5e99dd
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_bottom.png
new file mode 100644
index 0000000000..942545b6dc
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_front.png
new file mode 100644
index 0000000000..e2646c909c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_left.png
new file mode 100644
index 0000000000..e5347f029f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_right.png
new file mode 100644
index 0000000000..4483587dd7
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_top.png
new file mode 100644
index 0000000000..8c798b772c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pl_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_back.png
new file mode 100644
index 0000000000..78612d5069
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_bottom.png
new file mode 100644
index 0000000000..be4f9ef151
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_front.png
new file mode 100644
index 0000000000..2ee68f722a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_left.png
new file mode 100644
index 0000000000..8815c1aff4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_right.png
new file mode 100644
index 0000000000..7ddebf0c78
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_top.png
new file mode 100644
index 0000000000..d787d0627e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Pr_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_back.png
new file mode 100644
index 0000000000..31dda6729b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_bottom.png
new file mode 100644
index 0000000000..686a7900af
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_front.png
new file mode 100644
index 0000000000..001e10813f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_left.png
new file mode 100644
index 0000000000..8ceb4e236a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_right.png
new file mode 100644
index 0000000000..8deaab7f96
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_top.png
new file mode 100644
index 0000000000..5d54f82e81
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ra_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_back.png
new file mode 100644
index 0000000000..0ef5ec6b6d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_bottom.png
new file mode 100644
index 0000000000..0f30a81c7c
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_front.png
new file mode 100644
index 0000000000..940b5afab4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_left.png
new file mode 100644
index 0000000000..aac7654fdf
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_right.png
new file mode 100644
index 0000000000..070fbfd57b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_top.png
new file mode 100644
index 0000000000..611e8465ca
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Rb_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_back.png
new file mode 100644
index 0000000000..d91d4d0a0b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_bottom.png
new file mode 100644
index 0000000000..9f793a07f4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_front.png
new file mode 100644
index 0000000000..69a81b170d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_left.png
new file mode 100644
index 0000000000..d95bac7c44
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_right.png
new file mode 100644
index 0000000000..482bececa8
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_top.png
new file mode 100644
index 0000000000..0ee4410f7f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Se_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_back.png
new file mode 100644
index 0000000000..37e3772027
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_bottom.png
new file mode 100644
index 0000000000..f14d3dfcfc
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_front.png
new file mode 100644
index 0000000000..2860e63017
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_left.png
new file mode 100644
index 0000000000..39e36d157e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_right.png
new file mode 100644
index 0000000000..39ec7a033f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_top.png
new file mode 100644
index 0000000000..0de8efc71a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TE_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_back.png
new file mode 100644
index 0000000000..94400c57fe
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_bottom.png
new file mode 100644
index 0000000000..20fb6af755
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_front.png
new file mode 100644
index 0000000000..40e9c39b5f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_left.png
new file mode 100644
index 0000000000..d54f5eb7ba
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_right.png
new file mode 100644
index 0000000000..f8b0679830
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_top.png
new file mode 100644
index 0000000000..aaaf15b74b
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/TF_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_back.png
new file mode 100644
index 0000000000..ce66c139d9
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_bottom.png
new file mode 100644
index 0000000000..709f73b3e9
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_front.png
new file mode 100644
index 0000000000..84cf339fa6
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_left.png
new file mode 100644
index 0000000000..66b2781465
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_right.png
new file mode 100644
index 0000000000..f178106429
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_top.png
new file mode 100644
index 0000000000..6f89cc584e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ti_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_back.png
new file mode 100644
index 0000000000..1279107c48
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_bottom.png
new file mode 100644
index 0000000000..0a3665f860
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_front.png
new file mode 100644
index 0000000000..e5708769a4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_left.png
new file mode 100644
index 0000000000..fcbce713a4
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_right.png
new file mode 100644
index 0000000000..5ac04018ea
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_top.png
new file mode 100644
index 0000000000..46ebcfed19
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Tr_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_back.png
new file mode 100644
index 0000000000..5a196b30a6
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_bottom.png
new file mode 100644
index 0000000000..341361249e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_front.png
new file mode 100644
index 0000000000..be735d2333
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_left.png
new file mode 100644
index 0000000000..3161bfc4f9
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_right.png
new file mode 100644
index 0000000000..67d6f4c4b5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_top.png
new file mode 100644
index 0000000000..ce32aa3286
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VA_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_back.png
new file mode 100644
index 0000000000..9273c3844d
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_bottom.png
new file mode 100644
index 0000000000..5093952c2f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_front.png
new file mode 100644
index 0000000000..fefc66eeff
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_left.png
new file mode 100644
index 0000000000..fe43658458
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_right.png
new file mode 100644
index 0000000000..5656257592
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_top.png
new file mode 100644
index 0000000000..474a53eea6
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/VB_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_back.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_back.png
new file mode 100644
index 0000000000..30aee3211a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_back.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_bottom.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_bottom.png
new file mode 100644
index 0000000000..fd3824b252
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_front.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_front.png
new file mode 100644
index 0000000000..d902369df5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_front.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_left.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_left.png
new file mode 100644
index 0000000000..9927097ffc
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_left.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_right.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_right.png
new file mode 100644
index 0000000000..2b07d2f6d5
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_right.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_top.png b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_top.png
new file mode 100644
index 0000000000..0bea9f826a
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/blocks/Ve_top.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/gui/nei/guiBase.png b/src/main/resources/assets/gtneioreplugin/textures/gui/nei/guiBase.png
new file mode 100644
index 0000000000..87449ffd99
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/gui/nei/guiBase.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.png
new file mode 100644
index 0000000000..e286109098
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.png
new file mode 100644
index 0000000000..eb8ad3262f
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.png
new file mode 100644
index 0000000000..664709d6da
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.png
new file mode 100644
index 0000000000..95f73b28fe
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.png
new file mode 100644
index 0000000000..bf804874d3
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.png
new file mode 100644
index 0000000000..83774cb6f1
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.png
Binary files differ
diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.png
new file mode 100644
index 0000000000..89bb66bc8e
--- /dev/null
+++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.png
Binary files differ
diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info
index 990af069e2..9d8c7f0d9d 100644
--- a/src/main/resources/mcmod.info
+++ b/src/main/resources/mcmod.info
@@ -1,7 +1,7 @@
{
- "modListVersion": 2,
- "modList": [
- {
+ "modListVersion": 2,
+ "modList": [
+ {
"modid": "gregtech",
"name": "GregTech",
"description": "This Mod adds the awesome Technology of GregTech-Intergalactical to your World!",
@@ -302,6 +302,18 @@
"logoFile": "",
"screenshots": [],
"dependencies": []
- }
- ]
+ },
+ {
+ "modid": "gtneioreplugin",
+ "name": "GT NEI Ore Plugin GT:NH Mod",
+ "description": "A forge mod which adds NEI plugins for GregTech5's ores. Modded for GTNH",
+ "version": "${modVersion}",
+ "mcversion": "${minecraftVersion}",
+ "url": "",
+ "updateUrl": "",
+ "authorList": ["GWYOG", "bartimaeusnek"],
+ "credits": "",
+ "logoFile": "",
+ "screenshots": []
+ }]
}