HoloStructures mit alten Schematic Dateien (.schematic) kompatibel machen
Ich hab ja schon öfters erwähnt das zum umwandeln der Schmatic Dateien eine Block Meta Liste fehlt.
Wer will kann jetzt helfen sie auszufüllen, dazu müsst ihr einfach Schauen was Fehlt (im Internet findet man Listen mit allen Blöcken und IDs vor 1.13)
und es im richtigen Format in eine Textdatei oder direkt hier ins Forum schreiben.
Ich kann es dann kopieren und zusammensetzen.
Am ende ergibt das dann die Java-Klasse "BlockMetaList":
Javascript:
public class BlockMetaList {
private HashMap<Integer,HashMap<Integer,IBlockState>> blockMetaList = new HashMap<Integer,HashMap<Integer,IBlockState>>();
private HashMap<Integer, IBlockState> tempMetaList;
public BlockMetaList() {
// Beispiel für den Block Holzbretter, blockID 45 = Holzbretter -> metaID 0 = Eiche (Oak) 1 = Birke (Birch) 2 = Fichte (Spruce)
addBlockMetaEntry(0, Blocks.OAK_PLANKS.getDefaultState()); //setze metaID für variante Eiche
addBlockMetaEntry(1, Blocks.BIRCH_PLANKS.getDefaultState()); // setze metaID für variante Birke
addBlockMetaEntry(2, Blocks.SPRUCE_PLANKS.getDefaultState()); // setze metaID für variante Fichte
addBlockMetaList(45); // setze blockID für Holzbretter allgemein
addBlockMetaEntry(0, Blocks.STONE.getDefaultState());
addBlockMetaList(1); // Beispiel ohne Meta-Varianten, Stein hat keine varianten (daher 0, für Standard) und die ID 1
//… weitere Einträge
}
public static void addBlockMetaEntry(int metaID, IBlockState state) {
this.tempMetaList.put(metaID, state);
}
public static void addBlockMetaList(int blockID) {
this.blockMetaList.put(blockID, this.tempMetaList);
this.metaList.clear();
}
}
In diesem Beispiel ist die fertige Klasse zu sehen mit den Blöcken Birkenholz Eichenholz und Fichtenholz (Bretter).
Wer weitere ergänzen will kann das in dem er es wie folgt Schreibt und hochlädt:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Einträge für BlockMetaListe (Beispiel)
Javascript:
addBlockMetaEntry(0, Blocks.OAK_PLANKS.getDefaultState());
addBlockMetaEntry(1, Blocks.BIRCH_PLANKS.getDefaultState());
addBlockMetaEntry(2, Blocks.SPRUCE_PLANKS.getDefaultState());
addBlockMetaList(45);
addBlockMetaEntry(0, Blocks.STONE.getDefaultState());
addBlockMetaList(1);
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bitte ladet aber nicht nur 4 Blöcke oder so hoch, das ist da nur ein Beispiel, macht bitte mehrere, sonst werden das zu kleine unübersichtliche Abschnitte.
Hinter "Blocks." kommt immer der 1.13 ID Name, Eichenbretter haben zum Beispiel in der 1.13 den Namen "oak_planks" daher "Blocks.OAK_PLANKS.getDefaultState()"
Blöcke bei denen die Varianten, Blockzustände ändern, z.B: ob eine Tür offen oder zu ist, sind etwas anders.
Da muss man z.B. schreiben "Blocks.OAK_DOOR.getDefaultState().with(OPEN, true).with(POWERED, true)" oder ähnlich.
Diese Blöcke sollte man eventuell machen, wenn man sich etwas damit auskennt.
Wenn jemand einen besseren weg kennt alte Schematics in 1.13 zu laden, bzw. deren BlockIDs in 1.13 IDNamen zu konvertieren, darf das auch gerne vorschlagen.