aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.gradle139
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java7
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java103
3 files changed, 192 insertions, 57 deletions
diff --git a/build.gradle b/build.gradle
index 997b94dc30..252dac4ea1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,4 @@
-//version: 1661114848
+//version: 1662920829
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
@@ -8,6 +8,10 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import com.matthewprenger.cursegradle.CurseArtifact
+import com.matthewprenger.cursegradle.CurseRelation
+import com.modrinth.minotaur.dependencies.ModDependency
+import com.modrinth.minotaur.dependencies.VersionDependency
import org.gradle.internal.logging.text.StyledTextOutput.Style
import org.gradle.internal.logging.text.StyledTextOutputFactory
@@ -59,6 +63,8 @@ plugins {
id 'de.undercouch.download' version '5.0.1'
id 'com.github.gmazzo.buildconfig' version '3.0.3' apply false
id 'com.diffplug.spotless' version '6.7.2' apply false
+ id 'com.modrinth.minotaur' version '2.+' apply false
+ id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
}
boolean settingsupdated = verifySettingsGradle()
settingsupdated = verifyGitAttributes() || settingsupdated
@@ -127,11 +133,16 @@ checkPropertyExists("containsMixinsAndOrCoreModOnly")
checkPropertyExists("usesShadowedDependencies")
checkPropertyExists("developmentEnvironmentUserName")
-boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false
-boolean usesMixinDebug = project.hasProperty('usesMixinDebug') ?: project.usesMixins.toBoolean()
-boolean forceEnableMixins = project.hasProperty('forceEnableMixins') ? project.forceEnableMixins.toBoolean() : false
-String channel = project.hasProperty('channel') ? project.channel : 'stable'
-String mappingsVersion = project.hasProperty('mappingsVersion') ? project.mappingsVersion : '12'
+propertyDefaultIfUnset("noPublishedSources", false)
+propertyDefaultIfUnset("usesMixinDebug", project.usesMixins)
+propertyDefaultIfUnset("forceEnableMixins", false)
+propertyDefaultIfUnset("channel", "stable")
+propertyDefaultIfUnset("mappingsVersion", "12")
+propertyDefaultIfUnset("modrinthProjectId", "")
+propertyDefaultIfUnset("modrinthRelations", "")
+propertyDefaultIfUnset("curseForgeProjectId", "")
+propertyDefaultIfUnset("curseForgeRelations", "")
+
String javaSourceDir = "src/main/java/"
String scalaSourceDir = "src/main/scala/"
String kotlinSourceDir = "src/main/kotlin/"
@@ -651,6 +662,107 @@ publishing {
}
}
+if (modrinthProjectId.size() != 0) {
+ apply plugin: 'com.modrinth.minotaur'
+
+ File changelogFile = new File("CHANGELOG.md")
+
+ modrinth {
+ token = System.getenv("MODRINTH_TOKEN")
+ projectId = modrinthProjectId
+ versionNumber = identifiedVersion
+ versionType = identifiedVersion.endsWith("-pre") ? "beta" : "release"
+ changelog = changelogFile.exists() ? changelogFile.getText("UTF-8") : ""
+ uploadFile = jar
+ additionalFiles = getSecondaryArtifacts()
+ gameVersions = [minecraftVersion]
+ loaders = ["forge"]
+ debugMode = false
+ }
+
+ if (modrinthRelations.size() != 0) {
+ String[] deps = modrinthRelations.split(";")
+ deps.each { dep ->
+ if (dep.size() == 0) {
+ return
+ }
+ String[] parts = dep.split(":")
+ String[] qual = parts[0].split("-")
+ addModrinthDep(qual[0], qual[1], parts[1])
+ }
+ }
+ tasks.modrinth.dependsOn(build)
+ tasks.publish.dependsOn(tasks.modrinth)
+}
+
+if (curseForgeProjectId.size() != 0) {
+ apply plugin: 'com.matthewprenger.cursegradle'
+
+ File changelogFile = new File("CHANGELOG.md")
+
+ curseforge {
+ apiKey = System.getenv("CURSEFORGE_TOKEN")
+ project {
+ id = curseForgeProjectId
+ if (changelogFile.exists()) {
+ changelogType = "markdown"
+ changelog = changelogFile
+ }
+ releaseType = identifiedVersion.endsWith("-pre") ? "beta" : "release"
+ addGameVersion minecraftVersion
+ addGameVersion "Forge"
+ mainArtifact jar
+ for (artifact in getSecondaryArtifacts()) addArtifact artifact
+ }
+
+ options {
+ javaIntegration = false
+ forgeGradleIntegration = false
+ debug = false
+ }
+ }
+
+ if (curseForgeRelations.size() != 0) {
+ String[] deps = curseForgeRelations.split(";")
+ deps.each { dep ->
+ if (dep.size() == 0) {
+ return
+ }
+ String[] parts = dep.split(":")
+ addCurseForgeRelation(parts[0], parts[1])
+ }
+ }
+ tasks.curseforge.dependsOn(build)
+ tasks.publish.dependsOn(tasks.curseforge)
+}
+
+def addModrinthDep(scope, type, name) {
+ com.modrinth.minotaur.dependencies.Dependency dep;
+ if (!(scope in ["required", "optional", "incompatible", "embedded"])) {
+ throw new Exception("Invalid modrinth dependency scope: " + scope)
+ }
+ switch (type) {
+ case "project":
+ dep = new ModDependency(name, scope)
+ break
+ case "version":
+ dep = new VersionDependency(name, scope)
+ break
+ default:
+ throw new Exception("Invalid modrinth dependency type: " + type)
+ }
+ project.modrinth.dependencies.add(dep)
+}
+
+def addCurseForgeRelation(type, name) {
+ if (!(type in ["requiredDependency", "embeddedLibrary", "optionalDependency", "tool", "incompatible"])) {
+ throw new Exception("Invalid CurseForge relation type: " + type)
+ }
+ CurseArtifact artifact = project.curseforge.curseProjects[0].mainArtifact
+ CurseRelation rel = (artifact.curseRelations ?: (artifact.curseRelations = new CurseRelation()))
+ rel."$type"(name)
+}
+
// Updating
task updateBuildScript {
doLast {
@@ -963,6 +1075,21 @@ def checkPropertyExists(String propertyName) {
}
}
+def propertyDefaultIfUnset(String propertyName, defaultValue) {
+ if (!project.hasProperty(propertyName) || project.property(propertyName) == "") {
+ project.ext.setProperty(propertyName, defaultValue)
+ }
+}
+
def getFile(String relativePath) {
return new File(projectDir, relativePath)
}
+
+def getSecondaryArtifacts() {
+ // Because noPublishedSources from the beginning of the script is somehow not visible here...
+ boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false
+ def secondaryArtifacts = [devJar]
+ if (!noPublishedSources) secondaryArtifacts += [sourcesJar]
+ if (apiPackage) secondaryArtifacts += [apiJar]
+ return secondaryArtifacts
+}
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java
index 92969360bd..414f862cd6 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/items/BW_Stonage_Rotors.java
@@ -32,16 +32,16 @@ import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.IKineticRotor;
import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator;
import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator;
+import ic2.core.util.StackUtil;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
-import net.minecraft.nbt.NBTTagCompound;
-import ic2.core.util.StackUtil;
public class BW_Stonage_Rotors extends Item implements IKineticRotor {
@@ -99,7 +99,8 @@ public class BW_Stonage_Rotors extends Item implements IKineticRotor {
}
info.add(StatCollector.translateToLocal("tooltip.rotor.0.name") + " " + this.DiaMinMax[0]);
info.add(StatCollector.translateToLocal("tooltip.rotor.1.name") + " "
- + ((this.getMaxDamageEx() - this.getDamageOfStack(itemStack)) / 100) + "/" + (this.getMaxDamageEx() / 100));
+ + ((this.getMaxDamageEx() - this.getDamageOfStack(itemStack)) / 100) + "/"
+ + (this.getMaxDamageEx() / 100));
info.add(StatCollector.translateToLocal("tooltip.rotor.2.name") + " " + this.eff);
info.add(StatCollector.translateToLocal("tooltip.rotor.3.name") + " " + this.speed);
info.add(StatCollector.translateToLocal("tooltip.rotor.4.name") + " " + this.mRotor);
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java
index 3735c52cba..e65d5d1ebb 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_Windmill.java
@@ -28,10 +28,9 @@ import static gregtech.api.enums.GT_Values.V;
import com.github.bartimaeusnek.bartworks.MainMod;
import com.github.bartimaeusnek.bartworks.client.gui.BW_GUIContainer_Windmill;
-import com.github.bartimaeusnek.bartworks.common.tileentities.classic.BW_RotorBlock;
import com.github.bartimaeusnek.bartworks.common.items.BW_Stonage_Rotors;
+import com.github.bartimaeusnek.bartworks.common.tileentities.classic.BW_RotorBlock;
import com.github.bartimaeusnek.bartworks.server.container.BW_Container_Windmill;
-import com.github.bartimaeusnek.bartworks.util.BW_Util;
import com.gtnewhorizon.structurelib.StructureLibAPI;
import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits;
import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
@@ -41,9 +40,7 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.SubTag;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
@@ -56,11 +53,11 @@ import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
-import java.util.Set;
import java.util.List;
-import java.util.ArrayList;
+import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayerMP;
@@ -72,7 +69,6 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityDispenser;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
-import ic2.api.item.IKineticRotor;
public class GT_TileEntity_Windmill extends GT_MetaTileEntity_EnhancedMultiBlockBase<GT_TileEntity_Windmill>
implements ISurvivalConstructable {
@@ -182,43 +178,49 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_EnhancedMultiBlock
}
private float[] multiplierRecipe(ItemStack itemStack) {
- //will return max and min value of the multiplier, the average of these is used to calculate the multiplier.
+ // will return max and min value of the multiplier, the average of these is used to calculate the multiplier.
if (itemStack.getItem().equals(Items.wheat)) return new float[] {1.13f, 1.5f};
else if (itemStack.getItem().equals(Items.bone)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.glowstone)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.pumpkin)) return new float[] {0.8f, 1f};
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.glowstone)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.pumpkin)) return new float[] {0.8f, 1f};
else if (Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.gravel)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.cobblestone)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.stone)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.sandstone)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.clay)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.hardened_clay)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.stained_hardened_clay)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.wool)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.netherrack)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log)
- || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log2)) return new float[] {1f, 1.5f};
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.cobblestone)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.stone)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.sandstone)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.clay)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.hardened_clay)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.stained_hardened_clay)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.wool)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.netherrack)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log)
+ || Block.getBlockFromItem(itemStack.getItem()).equals(Blocks.log2)) return new float[] {1f, 1.5f};
else if (GT_OreDictUnificator.getAssociation(itemStack) == null
- || GT_OreDictUnificator.getAssociation(itemStack).mPrefix == null
- || GT_OreDictUnificator.getAssociation(itemStack).mMaterial == null
- || GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial == null
- || GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial.getDust(1) == null) return new float[] {1f, 1f};
+ || GT_OreDictUnificator.getAssociation(itemStack).mPrefix == null
+ || GT_OreDictUnificator.getAssociation(itemStack).mMaterial == null
+ || GT_OreDictUnificator.getAssociation(itemStack).mMaterial.mMaterial == null
+ || GT_OreDictUnificator.getAssociation(itemStack)
+ .mMaterial
+ .mMaterial
+ .getDust(1)
+ == null) return new float[] {1f, 1f};
else if (OrePrefixes.ore.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.oreNetherrack.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.oreEndstone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.oreBlackgranite.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.oreRedgranite.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.oreMarble.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.oreBasalt.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) return new float[] {0.5f, 1f};
+ || OrePrefixes.oreNetherrack.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.oreEndstone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.oreBlackgranite.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.oreRedgranite.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.oreMarble.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.oreBasalt.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix))
+ return new float[] {0.5f, 1f};
else if (OrePrefixes.stone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneBricks.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneChiseled.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneCobble.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneCracked.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneMossy.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneMossyBricks.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.stoneSmooth.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
- || OrePrefixes.cobblestone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)) return new float[] {1f, 1.5f};
+ || OrePrefixes.stoneBricks.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.stoneChiseled.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.stoneCobble.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.stoneCracked.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.stoneMossy.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.stoneMossyBricks.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.stoneSmooth.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix)
+ || OrePrefixes.cobblestone.equals(GT_OreDictUnificator.getAssociation(itemStack).mPrefix))
+ return new float[] {1f, 1.5f};
return new float[] {1f, 1f};
}
@@ -245,13 +247,17 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_EnhancedMultiBlock
this.updateSlots();
this.mOutputItems[0] = tRecipe.getOutput(0);
float[] mRecipe = multiplierRecipe(itemStack);
- float multiper = Math.min(mRecipe[1], Math.max(mRecipe[0] ,
- 2f * ((float) Math.sqrt((float)1 / (this.rotorBlock.getWindStrength() + 1)))
- * OutputMultiplier(rotorBlock)
- * (mRecipe[0] + mRecipe[1])));
+ float multiper = Math.min(
+ mRecipe[1],
+ Math.max(
+ mRecipe[0],
+ 2f
+ * ((float) Math.sqrt((float) 1 / (this.rotorBlock.getWindStrength() + 1)))
+ * OutputMultiplier(rotorBlock)
+ * (mRecipe[0] + mRecipe[1])));
int amount = Math.round(multiper * (this.mOutputItems[0].stackSize * this.mMulti));
- //Split ItemStack --by gtpp
+ // Split ItemStack --by gtpp
List<ItemStack> splitStacks = new ArrayList<>();
while (amount > this.mOutputItems[0].getMaxStackSize()) {
ItemStack tmp = this.mOutputItems[0];
@@ -264,7 +270,7 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_EnhancedMultiBlock
splitStacks.add(tmp);
mOutputItems = splitStacks.toArray(new ItemStack[splitStacks.size()]);
}
- this.mMaxProgresstime = (tRecipe.mDuration * 2 * 100 * this.mMulti) / (int) getSpeed(rotorBlock);
+ this.mMaxProgresstime = (tRecipe.mDuration * 2 * 100 * this.mMulti) / (int) getSpeed(rotorBlock);
this.mMulti = 16;
return true;
}
@@ -490,7 +496,7 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_EnhancedMultiBlock
public float OutputMultiplier(BW_RotorBlock rotorBlock) {
try {
return ((BW_Stonage_Rotors) rotorBlock.rotorSlot.get().getItem()).getmRotor();
- } catch (Exception e){
+ } catch (Exception e) {
return 1f;
}
}
@@ -498,15 +504,16 @@ public class GT_TileEntity_Windmill extends GT_MetaTileEntity_EnhancedMultiBlock
public int getSpeed(BW_RotorBlock rotorBlock) {
try {
return ((BW_Stonage_Rotors) rotorBlock.rotorSlot.get().getItem()).getSpeed();
- } catch (Exception e){
+ } catch (Exception e) {
return 1;
}
}
public void setRotorDamage(BW_RotorBlock rotorBlock, int damage) {
try {
- ((BW_Stonage_Rotors) rotorBlock.rotorSlot.get().getItem()).damageItemStack(rotorBlock.rotorSlot.get() , damage);
- } catch (Exception e){
+ ((BW_Stonage_Rotors) rotorBlock.rotorSlot.get().getItem())
+ .damageItemStack(rotorBlock.rotorSlot.get(), damage);
+ } catch (Exception e) {
rotorBlock.rotorSlot.damage(damage, false);
}
}