diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2023-08-17 20:45:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-17 20:45:21 +0200 |
commit | 8aa519a116879298195bfe4206451ee24c855d2a (patch) | |
tree | 0a8703ad6c60758fcde9fd16fe54ac77fcd3eb5d /src/main/java/kubatech/loaders | |
parent | 4dfda5b4ae37352c3aeed2624d8f3de684ba9cfd (diff) | |
download | GT5-Unofficial-8aa519a116879298195bfe4206451ee24c855d2a.tar.gz GT5-Unofficial-8aa519a116879298195bfe4206451ee24c855d2a.tar.bz2 GT5-Unofficial-8aa519a116879298195bfe4206451ee24c855d2a.zip |
Allow EEC to get drops that have requirements (e.g. skulls) (#92)
* Update dependencies.gradle
* Update build.gradle
* Use the new API
* Update dependencies.gradle
Diffstat (limited to 'src/main/java/kubatech/loaders')
-rw-r--r-- | src/main/java/kubatech/loaders/MobHandlerLoader.java | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/main/java/kubatech/loaders/MobHandlerLoader.java b/src/main/java/kubatech/loaders/MobHandlerLoader.java index c56c397308..7089aa6f6e 100644 --- a/src/main/java/kubatech/loaders/MobHandlerLoader.java +++ b/src/main/java/kubatech/loaders/MobHandlerLoader.java @@ -46,6 +46,7 @@ import org.apache.logging.log4j.Logger; import com.dreammaster.main.MainRegistry; import com.dreammaster.modcustomdrops.CustomDrops; +import com.kuba6000.mobsinfo.api.IChanceModifier; import com.kuba6000.mobsinfo.api.MobDrop; import com.kuba6000.mobsinfo.api.MobOverride; import com.kuba6000.mobsinfo.api.MobRecipe; @@ -106,8 +107,30 @@ public class MobHandlerLoader { MTE.lEUt = mEUt; MTE.mMaxProgresstime = Math.max(MOB_SPAWN_INTERVAL, (int) ((recipe.maxEntityHealth / attackDamage) * 10d)); ArrayList<ItemStack> stacks = new ArrayList<>(this.mOutputs.size()); + this.entityCopy.setPosition( + MTE.getBaseMetaTileEntity() + .getXCoord(), + MTE.getBaseMetaTileEntity() + .getYCoord(), + MTE.getBaseMetaTileEntity() + .getZCoord()); for (MobDrop o : this.mOutputs) { int chance = o.chance; + + double dChance = (double) chance / 100d; + for (IChanceModifier chanceModifier : o.chanceModifiers) { + dChance = chanceModifier.apply( + dChance, + MTE.getBaseMetaTileEntity() + .getWorld(), + stacks, + MTE.EECPlayer, + this.entityCopy); + } + + chance = (int) (dChance * 100d); + if (chance == 0) continue; + if (o.playerOnly) { chance = (int) ((double) chance * Config.MobHandler.playerOnlyDropsModifier); if (chance < 1) chance = 1; @@ -199,13 +222,15 @@ public class MobHandlerLoader { public void onPostMobRegistration(PostMobRegistrationEvent event) { if (!event.drops.isEmpty() && event.recipe.isUsableInVial) { ArrayList<MobDrop> drops = (ArrayList<MobDrop>) event.drops.clone(); - drops.removeIf(d -> d.chance == 0); + // drops.removeIf(d -> d.chance == 0); if (!drops.isEmpty()) { recipeMap.put(event.currentMob, new MobEECRecipe(drops, event.recipe)); - event.drops.stream() - .filter(d -> d.chance == 0) - .forEach( - d -> d.additionalInfo.add(StatCollector.translateToLocal("kubatech.mobhandler.eec_disabled"))); + /* + * event.drops.stream() + * .filter(d -> d.chance == 0) + * .forEach( + * d -> d.additionalInfo.add(StatCollector.translateToLocal("kubatech.mobhandler.eec_disabled"))); + */ } } } |