diff options
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); } } |