Skip to content

Commit

Permalink
Merge pull request #16 from GTNewHorizons/rework
Browse files Browse the repository at this point in the history
Cleanup
  • Loading branch information
Dream-Master authored Oct 21, 2024
2 parents cacdd4c + 25d6edc commit 4fc6744
Show file tree
Hide file tree
Showing 47 changed files with 1,004 additions and 1,335 deletions.
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

0 comments on commit 4fc6744

Please sign in to comment.