mirror of
https://github.com/GTNewHorizons/StructureLib.git
synced 2026-11-11 07:47:46 +00:00
124 lines
5.3 KiB
Java
124 lines
5.3 KiB
Java
package com.gtnewhorizon.structurelib;
|
|
|
|
import com.gtnewhorizon.structurelib.net.AlignmentMessage;
|
|
import com.gtnewhorizon.structurelib.alignment.IAlignmentProvider;
|
|
import com.gtnewhorizon.structurelib.alignment.enumerable.ExtendedFacing;
|
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
import net.minecraft.item.Item;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.World;
|
|
|
|
import static com.gtnewhorizon.structurelib.StructureLib.proxy;
|
|
|
|
/**
|
|
* A stable interface into the structure lib's internals. Backwards compatibility is maintained to the maximum extend possible.
|
|
*/
|
|
public class StructureLibAPI {
|
|
public static final String MOD_ID = "structurelib";
|
|
public static final int HINT_BLOCK_META_GENERIC_0 = 0;
|
|
public static final int HINT_BLOCK_META_GENERIC_1 = 1;
|
|
public static final int HINT_BLOCK_META_GENERIC_2 = 2;
|
|
public static final int HINT_BLOCK_META_GENERIC_3 = 3;
|
|
public static final int HINT_BLOCK_META_GENERIC_4 = 4;
|
|
public static final int HINT_BLOCK_META_GENERIC_5 = 5;
|
|
public static final int HINT_BLOCK_META_GENERIC_6 = 6;
|
|
public static final int HINT_BLOCK_META_GENERIC_7 = 7;
|
|
public static final int HINT_BLOCK_META_GENERIC_8 = 8;
|
|
public static final int HINT_BLOCK_META_GENERIC_9 = 9;
|
|
public static final int HINT_BLOCK_META_GENERIC_10 = 10;
|
|
public static final int HINT_BLOCK_META_GENERIC_11 = 11;
|
|
public static final int HINT_BLOCK_META_DEFAULT = 12;
|
|
public static final int HINT_BLOCK_META_AIR = 13;
|
|
public static final int HINT_BLOCK_META_NOT_AIR = 14;
|
|
public static final int HINT_BLOCK_META_ERROR = 15;
|
|
|
|
/**
|
|
* Start a batch of hinting. All hints particles generated during one batch will be considered to belong to one hologram.
|
|
*
|
|
* You don't need to call this unless your constructable tool didn't call {@link com.gtnewhorizon.structurelib.alignment.constructable.ConstructableUtility#handle(ItemStack, EntityPlayer, World, int, int, int, int)}
|
|
*/
|
|
public static void startHinting(World w) {
|
|
proxy.startHinting(w);
|
|
}
|
|
|
|
/**
|
|
* Start current batch of hinting. All hints particles generated during one batch will be considered to belong to one hologram.
|
|
*
|
|
* You don't need to call this unless your constructable tool didn't call {@link com.gtnewhorizon.structurelib.alignment.constructable.ConstructableUtility#handle(ItemStack, EntityPlayer, World, int, int, int, int)}
|
|
*/
|
|
public static void endHinting(World w) {
|
|
proxy.endHinting(w);
|
|
}
|
|
|
|
public static void hintParticleTinted(World w, int x, int y, int z, IIcon[] icons, short[] RGBa) {
|
|
proxy.hintParticleTinted(w, x, y, z, icons, RGBa);
|
|
}
|
|
|
|
public static void hintParticleTinted(World w, int x, int y, int z, Block block, int meta, short[] RGBa) {
|
|
proxy.hintParticleTinted(w, x, y, z, block, meta, RGBa);
|
|
}
|
|
|
|
public static void hintParticle(World w, int x, int y, int z, IIcon[] icons) {
|
|
proxy.hintParticle(w, x, y, z, icons);
|
|
}
|
|
|
|
public static void hintParticle(World w, int x, int y, int z, Block block, int meta) {
|
|
proxy.hintParticle(w, x, y, z, block, meta);
|
|
}
|
|
|
|
/**
|
|
* Query the ExtendedFacing of this tile entity.
|
|
* The ExtendedFacing will later be set onto given tile entity via {@link com.gtnewhorizon.structurelib.alignment.IAlignment#setExtendedFacing(ExtendedFacing)}
|
|
* upon arrival of server reply.
|
|
* @throws IllegalArgumentException if is not tile entity or provided a null alignment
|
|
*/
|
|
public static void queryAlignment(IAlignmentProvider provider) {
|
|
StructureLib.net.sendToServer(new AlignmentMessage.AlignmentQuery(provider));
|
|
}
|
|
|
|
/**
|
|
* Send the ExtendedFacing of this Tile Entity to all players. Can be called on server side only.
|
|
* @throws IllegalArgumentException if is not tile entity or provided a null alignment
|
|
*/
|
|
public static void sendAlignment(IAlignmentProvider provider) {
|
|
StructureLib.net.sendToAll(new AlignmentMessage.AlignmentData(provider));
|
|
}
|
|
|
|
/**
|
|
* Send the ExtendedFacing of this Tile Entity to given player. Can be called on server side only.
|
|
* @throws IllegalArgumentException if is not tile entity or provided a null alignment
|
|
*/
|
|
public static void sendAlignment(IAlignmentProvider provider, EntityPlayerMP player) {
|
|
StructureLib.net.sendTo(new AlignmentMessage.AlignmentData(provider), player);
|
|
}
|
|
|
|
/**
|
|
* Send the ExtendedFacing of this Tile Entity to all players around target point. Can be called on server side only.
|
|
* @throws IllegalArgumentException if is not tile entity or provided a null alignment
|
|
*/
|
|
public static void sendAlignment(IAlignmentProvider provider, NetworkRegistry.TargetPoint targetPoint) {
|
|
StructureLib.net.sendToAllAround(new AlignmentMessage.AlignmentData(provider), targetPoint);
|
|
}
|
|
|
|
|
|
/**
|
|
* Send the ExtendedFacing of this Tile Entity to all players in that dimension. Can be called on server side only.
|
|
* @throws IllegalArgumentException if is not tile entity or provided a null alignment
|
|
*/
|
|
public static void sendAlignment(IAlignmentProvider provider, World dimension) {
|
|
StructureLib.net.sendToDimension(new AlignmentMessage.AlignmentData(provider), dimension.provider.dimensionId);
|
|
}
|
|
|
|
public static Block getBlockHint() {
|
|
return StructureLib.blockHint;
|
|
}
|
|
|
|
public static Item getItemBlockHint() {
|
|
return StructureLib.itemBlockHint;
|
|
}
|
|
}
|