Skip to content

Commit dc9d9d5

Browse files
LasmGratelTakakura-Anri
authored andcommitted
Merge branch 'master' of github.com:InfinityStudio/GokiStats
# Conflicts: # src/main/java/net/infstudio/goki/common/StatsCommand.java
2 parents 9fe284d + c441021 commit dc9d9d5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1472
-1136
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ compileJava {
3030
sourceCompatibility = targetCompatibility = "1.8"
3131
}
3232

33-
version = "1.2.6"
33+
version = "1.2.7.1"
3434
group= "net.infstudio.gokistats" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
3535
archivesBaseName = "gokiStats"
3636

3737
minecraft {
3838
version = "1.12.2-14.23.5.2768"
39-
runDir = "../run"
39+
runDir = "run"
4040

4141
// the mappings can be changed at any time, and must be in the following format.
4242
// snapshot_YYYYMMDD snapshot are built nightly.

crowdin.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
files:
2+
- source: /src/main/resources/assets/gokistats/lang/en_us.lang
3+
translation: /src/main/resources/assets/gokistats/lang/%locale_with_underscore%.lang

logo/logo.ai

Lines changed: 1142 additions & 993 deletions
Large diffs are not rendered by default.

src/main/java/net/infstudio/goki/GokiStats.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import net.infstudio.goki.common.config.Configurable;
77
import net.infstudio.goki.common.config.GokiConfig;
88
import net.infstudio.goki.common.init.MinecraftEffects;
9-
import net.infstudio.goki.common.stats.StatBase;
10-
import net.infstudio.goki.common.stats.Stats;
9+
import net.infstudio.goki.api.stat.StatBase;
10+
import net.infstudio.goki.api.stat.Stats;
1111
import net.infstudio.goki.common.utils.Reference;
1212
import net.minecraft.command.ICommandManager;
1313
import net.minecraft.command.ServerCommandManager;
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package net.infstudio.goki.api.capability;
2+
3+
import net.infstudio.goki.api.stat.StatBase;
4+
import net.infstudio.goki.api.stat.StatState;
5+
import net.infstudio.goki.api.stat.StatStorage;
6+
import net.minecraft.nbt.NBTBase;
7+
import net.minecraft.nbt.NBTTagCompound;
8+
import net.minecraft.util.EnumFacing;
9+
import net.minecraftforge.common.capabilities.Capability;
10+
import net.minecraftforge.common.capabilities.CapabilityInject;
11+
import net.minecraftforge.common.capabilities.CapabilityManager;
12+
13+
public class CapabilityStat {
14+
@CapabilityInject(StatStorage.class)
15+
public static Capability<StatStorage> STAT;
16+
17+
public static void register() {
18+
CapabilityManager.INSTANCE.register(StatStorage.class, new Capability.IStorage<StatStorage>() {
19+
@Override
20+
public NBTBase writeNBT(Capability<StatStorage> capability, StatStorage instance, EnumFacing side) {
21+
NBTTagCompound compound = new NBTTagCompound();
22+
instance.stateMap.forEach((stat, state) -> {
23+
NBTTagCompound stateTag = new NBTTagCompound();
24+
stateTag.setInteger("level", state.level);
25+
stateTag.setInteger("revertedLevel", state.revertedLevel);
26+
compound.setTag(stat.getKey(), stateTag);
27+
});
28+
return compound;
29+
}
30+
31+
@Override
32+
public void readNBT(Capability<StatStorage> capability, StatStorage instance, EnumFacing side, NBTBase nbt) {
33+
if (nbt instanceof NBTTagCompound) {
34+
NBTTagCompound compound = (NBTTagCompound) nbt;
35+
for (String stat : compound.getKeySet()) {
36+
if (!StatBase.statKeyMap.containsKey(stat)) continue;
37+
NBTTagCompound stateTag = compound.getCompoundTag(stat);
38+
StatBase statBase = StatBase.statKeyMap.get(stat);
39+
instance.stateMap.put(statBase, new StatState(statBase, stateTag.getInteger("level"), stateTag.getInteger("revertedLevel")));
40+
}
41+
}
42+
}
43+
}, StatStorage::new);
44+
}
45+
}

src/main/java/net/infstudio/goki/common/stats/Stat.java renamed to src/main/java/net/infstudio/goki/api/stat/Stat.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.infstudio.goki.common.stats;
1+
package net.infstudio.goki.api.stat;
22

33
import net.minecraft.entity.player.EntityPlayer;
44

src/main/java/net/infstudio/goki/common/stats/StatBase.java renamed to src/main/java/net/infstudio/goki/api/stat/StatBase.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
package net.infstudio.goki.common.stats;
1+
package net.infstudio.goki.api.stat;
22

3+
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
4+
import it.unimi.dsi.fastutil.objects.ObjectList;
35
import net.infstudio.goki.common.config.Configurable;
46
import net.infstudio.goki.common.config.GokiConfig;
57
import net.infstudio.goki.common.config.stats.StatConfig;
@@ -13,10 +15,13 @@
1315
import net.minecraftforge.fml.relauncher.Side;
1416
import net.minecraftforge.fml.relauncher.SideOnly;
1517

16-
import java.util.ArrayList;
18+
import java.util.HashMap;
19+
import java.util.Map;
20+
import java.util.Objects;
1721

1822
public abstract class StatBase<T extends StatConfig> implements Stat, Configurable<T> {
19-
public static final ArrayList<StatBase> stats = new ArrayList<>(32);
23+
public static final Map<String, StatBase> statKeyMap = new HashMap<>(16);
24+
public static final ObjectList<StatBase> stats = new ObjectArrayList<>(16);
2025
public static int totalStats = 0;
2126
// public static final StatBase STAT_FOCUS = new StatFocus(14, "grpg_Focus",
2227
// "Focus", 25);
@@ -35,6 +40,7 @@ public StatBase() {
3540
this.key = "Dummy";
3641
this.name = "Dummy StatBase";
3742
stats.add(this);
43+
statKeyMap.put(key, this);
3844
}
3945

4046
public StatBase(int imgId, String key, int limit) {
@@ -43,6 +49,7 @@ public StatBase(int imgId, String key, int limit) {
4349
this.key = key;
4450
stats.add(this);
4551
totalStats ++;
52+
statKeyMap.put(key, this);
4653
}
4754

4855
protected static float getFinalBonus(float currentBonus) {
@@ -140,7 +147,23 @@ public String getLocalizedDes(EntityPlayer player) {
140147
this.getAppliedDescriptionVar(player)[0]);
141148
}
142149

150+
@Override
151+
public boolean equals(Object o) {
152+
if (this == o) return true;
153+
if (!(o instanceof StatBase)) return false;
154+
StatBase<?> statBase = (StatBase<?>) o;
155+
return Objects.equals(getKey(), statBase.getKey());
156+
}
143157

158+
@Override
159+
public int hashCode() {
160+
return Objects.hash(getKey());
161+
}
162+
163+
@Override
164+
public String toString() {
165+
return getKey();
166+
}
144167
// protected float getSecondaryBonus(int amount)
145168
// {
146169
// return 0;

src/main/java/net/infstudio/goki/common/stats/StatSpecial.java renamed to src/main/java/net/infstudio/goki/api/stat/StatSpecial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.infstudio.goki.common.stats;
1+
package net.infstudio.goki.api.stat;
22

33
import net.minecraft.entity.player.EntityPlayer;
44

src/main/java/net/infstudio/goki/common/stats/StatSpecialBase.java renamed to src/main/java/net/infstudio/goki/api/stat/StatSpecialBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.infstudio.goki.common.stats;
1+
package net.infstudio.goki.api.stat;
22

33
import net.infstudio.goki.common.utils.DataHelper;
44
import net.minecraft.entity.player.EntityPlayer;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package net.infstudio.goki.api.stat;
2+
3+
import java.util.Objects;
4+
5+
public class StatState {
6+
public Stat stat;
7+
public int level, revertedLevel;
8+
9+
public StatState(Stat stat, int level) {
10+
this.stat = stat;
11+
this.level = level;
12+
}
13+
14+
public StatState(Stat stat, int level, int revertedLevel) {
15+
this.stat = stat;
16+
this.level = level;
17+
this.revertedLevel = revertedLevel;
18+
}
19+
20+
@Override
21+
public boolean equals(Object o) {
22+
if (this == o) return true;
23+
if (o == null || getClass() != o.getClass()) return false;
24+
StatState statState = (StatState) o;
25+
return level == statState.level &&
26+
revertedLevel == statState.revertedLevel &&
27+
Objects.equals(stat, statState.stat);
28+
}
29+
30+
@Override
31+
public int hashCode() {
32+
return Objects.hash(stat, level, revertedLevel);
33+
}
34+
}

0 commit comments

Comments
 (0)