Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup #16

Merged
merged 12 commits into from
Oct 21, 2024
81 changes: 33 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,33 @@
Folder structure this file resides in

./
./../forgegradle -> contains gradlew.bat along with the new forge setup
./**/ -> contains the Eclipse Workspace with projects in it. There is a master gradle build file each project accesses

To setup my workspace in your eclipse, simply setup Forge, then move your eclipse workspace into this folder.


Each project/mod refers to the master gradle build file which creates download files in their respective /build/libs (or /build/distributions) folders.
Gradle is required, however one could also use the gradlew wrapper found in forgegradle to do this.
The build file reacts to certain conditions like a "META-INF.mf" being present, "makezip" being present...

THIS ASSUMES YOUR MOD COMPILES AGAINST FORGEGRADLE - if there are compile errors in the eclipse project, it will fail.


NOTE: Some projects attempt to include the Update Checker into their packages, which means it should be built first.
NOTE #2: Pet Bat relies on Dynamic Lights to have been compiled first.

Stuff that needs changing each mc version:

- in "./properties.xml" you find the minecraft and forge versions which are used by the build scripts for building and all resulting mod- and archivenames.
(artifacts are named by mc version only, so that filehoster linked files can be overwritten without breaking links)

- each mod has a changelog, add new versions in here
- each mod has a @Mod sourcefile, generally in the common package, in which you need to bump "version =" property accordingly


Mods with special Needs:

-- Multi Mine
- Multi Mine needs it's dummy jar (containing only the Manifest.MF) in the runtime /mods/ folder if you want it to work during debugging
- Multi Mine uses hardcoded obfuscated names in it's sourcefile "common\atomicstryker\multimine\common\fmlmagic\MMTransformer.java"
- those need to be fixed to the current Searge names each time minecraft obfuscation changes
- a good place to get current obfuscated names from is joined.srg, methods.csv and fields.csv somewhere in the forgegradle folders
- another good place is MCPBot in the MCP IRC channels, assuming it runs the version you need

-- Dynamic Lights
- similar to Multi Mine. sourcefile is "common\atomicstryker\dynamiclights\common\DLTransformer.java"

-- Stalker Creepers
- similar to Multi Mine. sourcefile is "common\atomicstryker\stalkercreepers\common\SCTransformer.java"

-- Kenshiro Mod
- uses some hacky stuff for rendering and manipulating punched entities. Will probably crash if broken.

-- Advanced Machines and Ropes+
- rely on external packages, namely IC2 and NEI
# Infernal Mobs

#### This mod randomly imbues spawning Living Things in the World with Diablo-style random Enchantments, making them much harder and much more rewarding to kill. They also drop the quadruple amount of xp and a random enchanted item.

List of modifiers that the mobs can have :

- 1UP - Mob heals fully, once, upon getting low
- Alchimist - throws Potions at you
- Berserk - Mob deals double damage, but hurts itself on attacking
- Blastoff - Tosses Players into the air
- Bulwark - Mob has 50% damage resistance
- Choke - Drown on land, hit Mob to breathe for a moment
- Cloaking - Invisibility Potion effect on Mob
- Darkness - Blindness Potion effect on Player
- Ender - can teleport dodge attacks, reflecting damage on the Player
- Exhaust - Exhaust Potion effect on Player
- Fiery - sets Player on Fire
- Ghastly - shoots Fireballs
- Gravity - knocks back or pulls Players
- Lifesteal - heals from attacking
- Ninja - can teleport dodge attacks, reflecting damage on the Player
- Poisonous - poisons Player
- Quicksand - Slow Potion effect on Player
- Regen - heals Health back
- Rust - causes high amounts of wear on weapons and armour when fought
- Sapper - Hunger Potion effect on Player
- Sprint - high movement speed bursts
- Sticky - can snatch Items the Player attacks them with
- Storm - calls down Lightning
- Vengeance - reflects a portion of all damage done
- Weakness - Weakness Potion effect on Player
- Webber - spawns Webs at the Players legs
- Wither - Wither effect
26 changes: 8 additions & 18 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ExampleMod tag to use as Blowdryer (Spotless, etc.) settings version, leave empty to disable.
# LOCAL to test local config updates.
gtnh.settings.blowdryerTag = 0.2.0
gtnh.settings.blowdryerTag = 0.2.2

# Human-readable mod name, available for mcmod.info population.
modName = Infernal Mobs
Expand Down Expand Up @@ -37,40 +37,31 @@ remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/co

# Select a default username for testing your mod. You can always override this per-run by running
# `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE.
developmentEnvironmentUserName = "Developer"
developmentEnvironmentUserName = Developer

# Enables using modern Java syntax (up to version 17) via Jabel, while still targeting JVM 8.
# See https://github.com/bsideup/jabel for details on how this works.
enableModernJavaSyntax = false
enableModernJavaSyntax = true

# Enables injecting missing generics into the decompiled source code for a better coding experience.
# Turns most publicly visible List, Map, etc. into proper List<E>, Map<K, V> types.
enableGenericInjection = false
enableGenericInjection = true

# Generate a class with a String field for the mod version named as defined below.
# If generateGradleTokenClass is empty or not missing, no such class will be generated.
# If gradleTokenVersion is empty or missing, the field will not be present in the class.
generateGradleTokenClass =
generateGradleTokenClass = atomicstryker.infernalmobs.Tags

# Name of the token containing the project's current version to generate/replace.
gradleTokenVersion = GRADLETOKEN_VERSION

# [DEPRECATED] Mod ID replacement token.
gradleTokenModId =

# [DEPRECATED] Mod name replacement token.
gradleTokenModName =

# [DEPRECATED] Mod Group replacement token.
gradleTokenGroupName =
gradleTokenVersion = VERSION

# [DEPRECATED]
# Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java
# public static final String VERSION = "GRADLETOKEN_VERSION";
# The string's content will be replaced with your mod's version when compiled. You should use this to specify your mod's
# version in @Mod([...], version = VERSION, [...]).
# Leave these properties empty to skip individual token replacements.
replaceGradleTokenInFile = InfernalMobsCore.java
replaceGradleTokenInFile =

# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can
# leave this property empty.
Expand Down Expand Up @@ -187,7 +178,7 @@ curseForgeRelations =
# disableSpotless = true

# Uncomment this to disable Checkstyle checks (currently wildcard import check).
disableCheckstyle = true
# disableCheckstyle = true

# Override the IDEA build type. Valid values are: "" (leave blank, do not override), "idea" (force use native IDEA build), "gradle"
# (force use delegated build).
Expand All @@ -200,4 +191,3 @@ disableCheckstyle = true
# Whether IDEA should run spotless checks when pressing the Build button.
# This is meant to be set in $HOME/.gradle/gradle.properties.
# ideaCheckSpotlessOnBuild = true

Loading