Skip to content

Commit ed2d179

Browse files
committed
[KillTheRNG] Cleanup files
- Add CustomRandom from old mod - Update MixinRender - Remove seperate mixin.json
1 parent 4c31e3e commit ed2d179

File tree

6 files changed

+225
-51
lines changed

6 files changed

+225
-51
lines changed

src/main/java/com/minecrafttas/killtherng/mixin/MixinRender.java

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
package com.minecrafttas.tasmod.ktrng;
2+
3+
import java.util.Random;
4+
5+
import kaptainwutax.seedutils.lcg.LCG;
6+
import kaptainwutax.seedutils.rand.JRand;
7+
8+
public class KTRNGRandom extends Random {
9+
10+
private String name;
11+
private String description;
12+
13+
private long timesCalled = 0;
14+
15+
private boolean enabled;
16+
private boolean client;
17+
18+
public KTRNGRandom(String name, String description, boolean enabled, boolean client) {
19+
super(0L);
20+
this.name = name;
21+
this.description = description;
22+
this.enabled = enabled;
23+
this.client = client;
24+
}
25+
26+
public void setSeed(long seedIn) {
27+
timesCalled = 0;
28+
super.setSeed(seedIn ^ 0x5deece66dL);
29+
}
30+
31+
public void setSeed(long seedIn, boolean shouldIncrease) {
32+
timesCalled++;
33+
super.setSeed(seedIn ^ 0x5deece66dL);
34+
}
35+
36+
public long getSeed() {
37+
long saved = timesCalled;
38+
long seed = reverse(super.nextLong()) ^ 0x5deece66dL;
39+
super.setSeed(seed);
40+
timesCalled = saved;
41+
return seed ^ 0x5deece66dL;
42+
}
43+
44+
public static long reverse(long in) {
45+
return (((7847617 * ((24667315 * (in >>> 32) + 18218081 * (in & 0xffffffffL) + 67552711) >> 32) - 18218081 * ((-4824621 * (in >>> 32) + 7847617 * (in & 0xffffffffL) + 7847617) >> 32)) - 11) * 246154705703781L) & 0xffffffffffffL;
46+
}
47+
48+
public String getName() {
49+
return this.name;
50+
}
51+
52+
public String getDescription() {
53+
return description;
54+
}
55+
56+
public long getTimesCalled() {
57+
return timesCalled;
58+
}
59+
60+
public boolean isEnabled() {
61+
return enabled;
62+
}
63+
64+
public boolean isClient() {
65+
return client;
66+
}
67+
68+
@Override
69+
public long nextLong() {
70+
timesCalled++;
71+
long seedstored = getSeed();
72+
long value = super.nextLong();
73+
fireEvent(seedstored, Long.toString(value));
74+
return value;
75+
}
76+
77+
@Override
78+
public double nextDouble() {
79+
timesCalled++;
80+
long seedstored = getSeed();
81+
double value = super.nextDouble();
82+
fireEvent(seedstored, Double.toString(value));
83+
return value;
84+
}
85+
86+
@Override
87+
public boolean nextBoolean() {
88+
timesCalled++;
89+
long seedstored = getSeed();
90+
boolean value = super.nextBoolean();
91+
fireEvent(seedstored, Boolean.toString(value));
92+
return value;
93+
}
94+
95+
@Override
96+
public int nextInt() {
97+
timesCalled++;
98+
long seedstored = getSeed();
99+
int value = super.nextInt();
100+
fireEvent(seedstored, Integer.toString(value));
101+
return value;
102+
}
103+
104+
@Override
105+
public int nextInt(int bound) {
106+
timesCalled++;
107+
long seedstored = getSeed();
108+
int value = super.nextInt(bound);
109+
fireEvent(seedstored, Integer.toString(value));
110+
return value;
111+
}
112+
113+
@Override
114+
public float nextFloat() {
115+
return super.nextFloat();
116+
}
117+
118+
@Override
119+
public void nextBytes(byte[] bytes) {
120+
super.nextBytes(bytes);
121+
}
122+
123+
@Override
124+
public double nextGaussian() {
125+
timesCalled++;
126+
double value = 0;
127+
value = super.nextGaussian();
128+
return value;
129+
}
130+
131+
public void advance() {
132+
advance(1);
133+
}
134+
135+
public void advance(long i) {
136+
JRand thing = JRand.ofInternalSeed(getSeed());
137+
thing.advance(i);
138+
setSeed(thing.getSeed());
139+
}
140+
141+
public long getSeedAt(int steps) {
142+
JRand thing = new JRand(getSeed()).combine(steps);
143+
return thing.getSeed();
144+
}
145+
146+
public long distance(KTRNGRandom random) {
147+
return KTRNGRandom.distance(this.getSeed(), random.getSeed());
148+
}
149+
150+
public long distance(long seed) {
151+
return KTRNGRandom.distance(this.getSeed(), seed);
152+
}
153+
154+
public static long distance(KTRNGRandom random1, KTRNGRandom random2) {
155+
return KTRNGRandom.distance(random1.getSeed(), random2.getSeed());
156+
}
157+
158+
public static long distance(long seed, long seed2) {
159+
return LCG.JAVA.distance(seed, seed2);
160+
}
161+
162+
@Override
163+
public String toString() {
164+
return name + ": " + enabled;
165+
}
166+
167+
@Override
168+
public boolean equals(Object obj) {
169+
if (obj instanceof KTRNGRandom) {
170+
KTRNGRandom custom = (KTRNGRandom) obj;
171+
return custom.name.equals(name);
172+
} else {
173+
return super.equals(obj);
174+
}
175+
}
176+
177+
public void fireEvent(long seed, String value) {
178+
// TODO Implement
179+
}
180+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.minecrafttas.tasmod.mixin.killtherng;
2+
3+
import java.util.Random;
4+
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Inject;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
9+
10+
import net.minecraft.client.renderer.GlStateManager;
11+
import net.minecraft.client.renderer.entity.Render;
12+
import net.minecraft.client.renderer.entity.RenderLivingBase;
13+
import net.minecraft.client.renderer.entity.RenderManager;
14+
import net.minecraft.entity.EntityLivingBase;
15+
16+
@SuppressWarnings("rawtypes")
17+
@Mixin(RenderLivingBase.class)
18+
public abstract class MixinRenderLivingBase extends Render {
19+
20+
protected MixinRenderLivingBase(RenderManager renderManager) {
21+
super(renderManager);
22+
}
23+
24+
@SuppressWarnings("unchecked")
25+
@Inject(method = "renderName", at = @At(value = "HEAD"))
26+
public void inject_renderName(EntityLivingBase entity, double d, double e, double f, CallbackInfo ci) {
27+
long seed = getSeed(entity.rand);
28+
GlStateManager.alphaFunc(516, 0.1F);
29+
this.renderEntityName(entity, d, e + 0.23D, f, Long.toString(seed), 64);
30+
}
31+
32+
private long getSeed(Random rand) {
33+
long in = rand.nextLong();
34+
long seed = (((7847617 * ((24667315 * (in >>> 32) + 18218081 * (in & 0xffffffffL) + 67552711) >> 32) - 18218081 * ((-4824621 * (in >>> 32) + 7847617 * (in & 0xffffffffL) + 7847617) >> 32)) - 11) * 246154705703781L)
35+
& 0xffffffffffffL;
36+
seed = seed ^ 0x5deece66dL;
37+
rand.setSeed(seed);
38+
return seed;
39+
}
40+
}

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727
},
2828
"mixins": [
2929
"mctcommon.mixin.json",
30-
"tasmod.mixin.json",
31-
"killtherng.mixin.json"
30+
"tasmod.mixin.json"
3231
],
3332
"depends": {
3433
"fabricloader": ">=0.14.19",

src/main/resources/killtherng.mixin.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/main/resources/tasmod.mixin.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@
6868
// Fixes
6969
"fixes.MixinMinecraftFullscreen",
7070
"fixes.MixinNetworkManager",
71-
"fixes.MixinMouseHelper"
71+
"fixes.MixinMouseHelper",
72+
73+
// KTRNG
74+
"killtherng.MixinRenderLivingBase"
7275
]
7376
}

0 commit comments

Comments
 (0)