first code commit

This commit is contained in:
octarine-noise
2014-06-25 23:27:17 +02:00
parent 554e06176b
commit 3bd402b964
33 changed files with 1591 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
package mods.betterfoliage.common.config;
import java.io.File;
import mods.betterfoliage.BetterFoliage;
import net.minecraftforge.common.config.Configuration;
public class Config {
public static boolean leavesEnabled = true;
public static boolean grassEnabled = true;
public static OptionDouble leavesHOffset = new OptionDouble(0.0, 0.4, 0.025, 0.2);
public static OptionDouble leavesVOffset = new OptionDouble(0.0, 0.4, 0.025, 0.1);
public static OptionDouble leavesSize = new OptionDouble(0.75, 1.8, 0.05, 1.4);
public static OptionDouble grassHOffset = new OptionDouble(0.0, 0.4, 0.025, 0.2);
public static OptionDouble grassHeightMin = new OptionDouble(0.1, 1.5, 0.05, 0.5);
public static OptionDouble grassHeightMax = new OptionDouble(0.1, 1.5, 0.05, 1.0);
public static OptionDouble grassSize = new OptionDouble(0.5, 1.5, 0.05, 1.0);
private Config() {}
public static void load() {
Configuration config = new Configuration(new File(BetterFoliage.configDir, "betterfoliage.cfg"));
config.load();
leavesEnabled = config.get("render", "leavesEnabled", true).getBoolean(true);
loadValue(config, "render", "leavesHorizontalOffset", leavesHOffset);
loadValue(config, "render", "leavesVerticalOffset", leavesVOffset);
loadValue(config, "render", "leavesSize", leavesSize);
grassEnabled = config.get("render", "grassEnabled", true).getBoolean(true);
loadValue(config, "render", "grassHorizontalOffset", grassHOffset);
loadValue(config, "render", "grassHeightMin", grassHeightMin);
loadValue(config, "render", "grassHeightMax", grassHeightMax);
if (grassHeightMin.value > grassHeightMax.value) grassHeightMin.value = grassHeightMax.value;
if (config.hasChanged()) config.save();
}
public static void save() {
Configuration config = new Configuration(new File(BetterFoliage.configDir, "betterfoliage.cfg"));
config.load();
config.get("render", "leavesEnabled", true).set(leavesEnabled);
saveValue(config, "render", "leavesHorizontalOffset", leavesHOffset);
saveValue(config, "render", "leavesVerticalOffset", leavesVOffset);
saveValue(config, "render", "leavesSize", leavesSize);
config.get("render", "grassEnabled", true).set(grassEnabled);
saveValue(config, "render", "grassHorizontalOffset", grassHOffset);
saveValue(config, "render", "grassHeightMin", grassHeightMin);
saveValue(config, "render", "grassHeightMax", grassHeightMax);
if (config.hasChanged()) config.save();
}
protected static void saveValue(Configuration config, String category, String key, OptionDouble option) {
config.get(category, key, option.value).set(option.value);
}
protected static void loadValue(Configuration config, String category, String key, OptionDouble option) {
option.value = config.get(category, key, option.value).getDouble(option.value);
if (option.value > option.max) {
option.value = option.max;
saveValue(config, category, key, option);
}
if (option.value < option.min) {
option.value = option.min;
saveValue(config, category, key, option);
}
}
}

View File

@@ -0,0 +1,26 @@
package mods.betterfoliage.common.config;
public class OptionDouble {
public double min;
public double max;
public double step;
public double value;
public OptionDouble(double min, double max, double step, double value) {
this.min = min;
this.max = max;
this.step = step;
this.value = value;
}
public void increment() {
value += step;
if (value > max) value = max;
}
public void decrement() {
value -= step;
if (value < min) value = min;
}
}

View File

@@ -0,0 +1,39 @@
package mods.betterfoliage.common.util;
public class DeobfNames {
private DeobfNames() {}
/** MCP name of RenderBlocks.renderBlockByRenderType() */
public static final String RB_RBBRT_NAME_MCP = "renderBlockByRenderType";
/** Obfuscated name of RenderBlocks.renderBlockByRenderType() */
public static final String RB_RBBRT_NAME_OBF = "b";
/** MCP signature of RenderBlocks.renderBlockByRenderType() */
public static final String RB_RBBRT_SIG_MCP = "(Lnet/minecraft/block/Block;III)Z";
/** Obfuscated signature of RenderBlocks.renderBlockByRenderType() */
public static final String RB_RBBRT_SIG_OBF = "(Lahu;III)Z";
/** MCP signature of BlockRenderTypeOverride.getRenderType(Block) */
public static final String BRTO_GRT_SIG_MCP = "(Lnet/minecraft/block/Block;)I";
/** Obfuscated signature of BlockRenderTypeOverride.getRenderType(Block) */
public static final String BRTO_GRT_SIG_OBF = "(Lahu;)I";
/** MCP name of SimpleReloadableResourceManager.domainResourceManagers */
public static final String SRRM_DRM_MCP = "domainResourceManagers";
/** SRG name of SimpleReloadableResourceManager.domainResourceManagers */
public static final String SRRM_DRM_SRGNAME = "field_110548_a";
/** MCP name of TextureMap.mapRegisteredSprites */
public static final String TM_MRS_MCP = "mapRegisteredSprites";
/** Obfuscated name of TextureMap.mapRegisteredSprites */
public static final String TM_MRS_OBF = "bpr";
/** SRG name of TextureMap.mapRegisteredSprites */
public static final String TM_MRS_SRG = "field_110574_e";
}

View File

@@ -0,0 +1,30 @@
package mods.betterfoliage.common.util;
public class Double3 {
public final double x;
public final double y;
public final double z;
public Double3(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
public Double3 add(Double3 other) {
return new Double3(x + other.x, y + other.y, z + other.z);
}
public Double3 scaleAxes(double sx, double sy, double sz) {
return new Double3(x * sx, y * sy, z * sz);
}
public Double3 scale(double s) {
return new Double3(x * s, y * s, z * s);
}
public Double3 inverse() {
return new Double3(-x, -y, -z);
}
}

View File

@@ -0,0 +1,58 @@
package mods.betterfoliage.common.util;
import java.lang.reflect.Field;
import java.util.Map;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IResourceManager;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
public class ReflectionUtil {
private ReflectionUtil() {}
@SuppressWarnings("unchecked")
public static Map<String, IResourceManager> getDomainResourceManagers() {
IResourceManager manager = Minecraft.getMinecraft().getResourceManager();
Map<String, IResourceManager> result = getField(manager, DeobfNames.SRRM_DRM_MCP, Map.class);
if (result == null) result = getField(manager, DeobfNames.SRRM_DRM_SRGNAME, Map.class);
return result;
}
@SuppressWarnings("unchecked")
public static <T> T getField(Object target, String fieldName, Class<T> resultClass) {
try {
Field field = target.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
return (T) field.get(target);
} catch (Exception e) {
return null;
}
}
@SuppressWarnings("unchecked")
public static <T> T getStaticField(Class<?> clazz, String fieldName, Class<T> resultClass) {
try {
Field field = clazz.getDeclaredField(fieldName);
field.setAccessible(true);
return (T) field.get(null);
} catch (Exception e) {
return null;
}
}
@SuppressWarnings("unchecked")
public static ISimpleBlockRenderingHandler getRenderingHandler(int renderType) {
try {
Field field = RenderingRegistry.class.getDeclaredField("INSTANCE");
field.setAccessible(true);
RenderingRegistry inst = (RenderingRegistry) field.get(null);
field = RenderingRegistry.class.getDeclaredField("blockRenderers");
field.setAccessible(true);
return ((Map<Integer, ISimpleBlockRenderingHandler>) field.get(inst)).get(renderType);
} catch (Exception e) {
return null;
}
}
}