diff options
| author | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
|---|---|---|
| committer | Raven Szewczyk <git@eigenraven.me> | 2024-05-24 19:50:35 +0100 |
| commit | 6d1b2216464d4dad449ac6fcfec476832224a55e (patch) | |
| tree | 526a0c15f7056313c80e6c0386e025e9b3f61781 /src/main/java/gtPlusPlus/xmod/bartcrops/abstracts | |
| parent | b5d35f40afa606ed1b07061dad82e0521a59c186 (diff) | |
| download | GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.gz GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.tar.bz2 GT5-Unofficial-6d1b2216464d4dad449ac6fcfec476832224a55e.zip | |
Merge addon sources
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/bartcrops/abstracts')
3 files changed, 174 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java new file mode 100644 index 0000000000..c794c40878 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseAestheticCrop.java @@ -0,0 +1,34 @@ +package gtPlusPlus.xmod.bartcrops.abstracts; + +import gtPlusPlus.preloader.CORE_Preloader; +import ic2.api.crops.ICropTile; + +public abstract class BaseAestheticCrop extends BaseHarvestableCrop { + + @Override + public int tier() { + return 1; + } + + @Override + public int stat(int n) { + return switch (n) { + case 0 -> 0; + case 1 -> 0; + case 2 -> 0; + case 3 -> 4; + case 4 -> 0; + default -> 0; + }; + } + + @Override + public int growthDuration(ICropTile crop) { + return CORE_Preloader.DEBUG_MODE ? 1 : 225; + } + + @Override + public byte getSizeAfterHarvest(ICropTile crop) { + return 1; + } +} diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java new file mode 100644 index 0000000000..405c1ef1e1 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java @@ -0,0 +1,67 @@ +package gtPlusPlus.xmod.bartcrops.abstracts; + +import static gregtech.api.enums.Mods.GTPlusPlus; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import ic2.api.crops.CropCard; +import ic2.api.crops.ICropTile; +import speiger.src.crops.api.ICropCardInfo; + +public abstract class BaseCrop extends CropCard implements ICropCardInfo { + + @Override + @SideOnly(Side.CLIENT) + public void registerSprites(IIconRegister iconRegister) { + this.textures = new IIcon[this.maxSize()]; + for (int i = 1; i <= this.textures.length; ++i) { + this.textures[i - 1] = iconRegister + .registerIcon(GTPlusPlus.ID + ":crop/blockCrop." + this.name() + "." + i); + } + } + + @Override + public float dropGainChance() { + return (float) (Math.pow(0.95D, (double) ((float) this.tier())) * (double) 1f); + } + + @Override + public boolean canCross(ICropTile crop) { + return crop.getSize() == this.maxSize(); + } + + @Override + public int getrootslength(ICropTile crop) { + return 3; + } + + @Override + public String discoveredBy() { + return "Alkalus"; + } + + @Override + public String owner() { + return "Gtplusplus"; + } + + @Override + public List<String> getCropInformation() { + List<String> ret = new ArrayList<>(); + ret.add(Arrays.toString(this.attributes())); + return ret; + } + + public ItemStack getDisplayItem(CropCard card) { + return ItemUtils.getItemStackOfAmountFromOreDict("crop" + this.name(), 0); + } +} diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java new file mode 100644 index 0000000000..80325edff0 --- /dev/null +++ b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseHarvestableCrop.java @@ -0,0 +1,73 @@ +package gtPlusPlus.xmod.bartcrops.abstracts; + +import gtPlusPlus.preloader.CORE_Preloader; +import ic2.api.crops.ICropTile; + +public abstract class BaseHarvestableCrop extends BaseCrop { + + @Override + public int tier() { + return 2; + } + + @Override + public int stat(int n) { + return switch (n) { + case 0 -> 0; + case 1 -> 4; + case 2 -> 0; + case 3 -> 4; + case 4 -> 0; + default -> 0; + }; + } + + @Override + public boolean canGrow(ICropTile crop) { + return crop.getSize() < 3; + } + + @Override + public int getOptimalHavestSize(ICropTile crop) { + return 3; + } + + @Override + public boolean canBeHarvested(ICropTile crop) { + return crop.getSize() == 3; + } + + @Override + public int weightInfluences(ICropTile crop, float humidity, float nutrients, float air) { + return (int) ((double) humidity * 1.2D + (double) nutrients * 0.9D + (double) air * 0.9D); + } + + @Override + public int growthDuration(ICropTile crop) { + short r; + if (CORE_Preloader.DEBUG_MODE) { + r = 1; + } else if (crop.getSize() == 2) { + r = 200; + } else { + r = 700; + } + + return r; + } + + @Override + public byte getSizeAfterHarvest(ICropTile crop) { + return 2; + } + + @Override + public int maxSize() { + return 3; + } + + @Override + public String discoveredBy() { + return "Alkalus"; + } +} |
