From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- src/main/java/jp/plusplus/fbs/api/IPottery.java | 253 ++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/api/IPottery.java (limited to 'src/main/java/jp/plusplus/fbs/api/IPottery.java') diff --git a/src/main/java/jp/plusplus/fbs/api/IPottery.java b/src/main/java/jp/plusplus/fbs/api/IPottery.java new file mode 100644 index 0000000..b2d081a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/api/IPottery.java @@ -0,0 +1,253 @@ +package jp.plusplus.fbs.api; + +import net.minecraft.block.Block; +import net.minecraft.client.model.ModelBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +import java.util.ArrayList; +import java.util.Random; + +/** + * Created by plusplus_F on 2015/08/26. + * 陶芸品。ブロックに実装する事。 + */ +public interface IPottery { + + /** + * 指定の値のItemStackを返す + * @param state + * @param grade + * @param size + * @param pattern + * @param hasEffect + * @return + */ + public ItemStack getItemStack(PotteryState state, PotteryGrade grade, PotterySize size, byte pattern, boolean hasEffect); + + /** + * Sizeを設定する + * @param itemStack + * @param size + */ + public void setSize(ItemStack itemStack, PotterySize size); + + /** + * サイズを返す + * @param nbt + * @return + */ + public PotterySize getSize(NBTTagCompound nbt); + + + /** + * 品質を設定する + * @param itemStack + * @param grade + */ + public void setGrade(ItemStack itemStack, PotteryGrade grade); + + /** + * 品質を*ランダムに*設定する + * @param itemStack + * @param rand + */ + public void setGrade(ItemStack itemStack, Random rand); + + /** + * 品質を返す + * @param nbt + * @return + */ + public PotteryGrade getGrade(NBTTagCompound nbt); + + /** + * 模様を設定する + * @param itemStack + * @param pattern + */ + public void setPattern(ItemStack itemStack, byte pattern); + + /** + * 模様を返す + * @param nbt + * @return + */ + public byte getPattern(NBTTagCompound nbt); + + /** + * 状態を設定する + * 特殊効果持ちの陶芸品を作る場合、ここでBAKEDに遷移する際にアイテムスタックを弄ること + * @param itemStack + * @param state + */ + public void setState(ItemStack itemStack, PotteryState state); + /** + * 状態を返す + * @param nbt + * @return + */ + public PotteryState getState(NBTTagCompound nbt); + + /** + * 効果持ちフラグを設定する + * @param itemStack + * @param eff + * @return + */ + public void setEffect(ItemStack itemStack, boolean eff); + + /** + * 魔法の効果を持つか + * @param nbt + * @return + */ + public boolean hasEffect(NBTTagCompound nbt); + + /** + * hasEffect():true時に、窯で焼きあがる際に呼ばれる + * 効果持ちのItemStackを返す + * @param itemStack + * @return + */ + public ItemStack getEnchantedItemStack(ItemStack itemStack, Random rand); + + /** + * 描画用メタデータを得る + * 2211 0000 + * 0:模様 + * 1:大きさ + * 2:状態 + * @param nbt + * @return + */ + public int getMetadata(NBTTagCompound nbt); + + /** + * モデル描画に使うRLを返す + * @param metadata  + * @return + */ + public ResourceLocation getResourceLocation(int metadata); + + /** + * モデル描画に使うMBを返す + * @param metadata + * @return + */ + public ModelBase getModel(int metadata); + + /** + * ブロックを返す。基本はthisを返す + * @return + */ + public Block getBlockType(); + + /** + * 乾燥にかかる*秒数*を返す + * @param nbt + * @return + */ + public int getDrySec(NBTTagCompound nbt); + + /** + * そのアイテムを売却した際の価格を返す + * @param itemStack + * @return + */ + public int getMP(ItemStack itemStack); + + /** + * 表示されるローカライズされた名前を得る + * @param nbt + * @return + */ + public String getLocalizedName(NBTTagCompound nbt); + + /** + * 「完成品の」取り得る全てのパターンを返す + * 返り値はMPやCreativeTabの登録に使われる + * @return + */ + public ArrayList getAllPattern(); + + /** + * 被弾時に壺が割れる確率を得る + * @param itemStack + * @return + */ + public float getCrashProbability(ItemStack itemStack); + + public static enum PotteryState{ + MOLDED(0), DRY(1), BAKED(2), INVALID_VALUE(-1); + + PotteryState(int v){ value=(byte)v; } + + private byte value; + public byte getValue(){ return value; } + + public static PotteryState Get(int v){ + if(v==MOLDED.getValue()) return MOLDED; + if(v==DRY.getValue()) return DRY; + if(v==BAKED.getValue()) return BAKED; + return INVALID_VALUE; + } + public static String GetLocalizedPrefix(PotteryState state){ + if(state==MOLDED) return StatCollector.translateToLocal("pottery.fbs.molded"); + if(state==DRY) return StatCollector.translateToLocal("pottery.fbs.dry"); + return ""; + } + } + public static enum PotterySize{ + SMALL(0), MEDIUM(1), LARGE(2); + + PotterySize(int v){ value=(byte)v; } + + private byte value; + public byte getValue(){ return value; } + + public static PotterySize Get(int v){ + if(v==SMALL.getValue()) return SMALL; + if(v==LARGE.getValue()) return LARGE; + return MEDIUM; + } + public static String GetLocalizedPrefix(PotterySize size){ + String str; + switch (size){ + case SMALL: str= StatCollector.translateToLocal("pottery.fbs.small"); break; + case LARGE: str=StatCollector.translateToLocal("pottery.fbs.large"); break; + default: str=""; break; + } + return str; + } + } + public static enum PotteryGrade{ + BAD(0), NORMAL(1), GOOD(2), GREAT(3), SOULFUL(4); + + PotteryGrade(int v){ value=(byte)v; } + + private byte value; + public byte getValue(){ return value; } + + public static PotteryGrade Get(int v){ + if(v==BAD.getValue()) return BAD; + if(v==GOOD.getValue()) return GOOD; + if(v==GREAT.getValue()) return GREAT; + if(v==SOULFUL.getValue()) return SOULFUL; + return NORMAL; + } + public static String GetLocalizedPrefix(PotteryGrade grade){ + String str; + switch (grade){ + case BAD: str=StatCollector.translateToLocal("pottery.fbs.bad"); break; + case GOOD: str=StatCollector.translateToLocal("pottery.fbs.good"); break; + case GREAT: str=StatCollector.translateToLocal("pottery.fbs.great"); break; + case SOULFUL: str=StatCollector.translateToLocal("pottery.fbs.soulful"); break; + default: str=""; break; + } + return str; + } + } +} -- cgit v1.2.3