mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-24 14:06:42 +01:00
Jar Fixes
- Fixed ScrollFixer not working in built jar - updated mods.toml - moved TreeFertilizer to item package
This commit is contained in:
parent
ebb9d6e490
commit
f0b9c30ef5
9 changed files with 46 additions and 44 deletions
|
@ -25,7 +25,7 @@ minecraft {
|
||||||
// stable_# Stables are built at the discretion of the MCP team.
|
// stable_# Stables are built at the discretion of the MCP team.
|
||||||
// Use non-default mappings at your own risk. they may not always work.
|
// Use non-default mappings at your own risk. they may not always work.
|
||||||
// Simply re-run your setup task after changing the mappings to update your workspace.
|
// Simply re-run your setup task after changing the mappings to update your workspace.
|
||||||
mappings channel: 'snapshot', version: '20190621-1.14.2'
|
mappings channel: 'snapshot', version: '20190717-1.14.3'
|
||||||
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
|
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
|
||||||
|
|
||||||
// accessTransformer = file('build/resources/main/META-INF/accesstransformer.cfg')
|
// accessTransformer = file('build/resources/main/META-INF/accesstransformer.cfg')
|
||||||
|
@ -89,7 +89,7 @@ dependencies {
|
||||||
// Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
|
// Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
|
||||||
// that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
|
// that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
|
||||||
// The userdev artifact is a special name and will get all sorts of transformations applied to it.
|
// The userdev artifact is a special name and will get all sorts of transformations applied to it.
|
||||||
minecraft 'net.minecraftforge:forge:1.14.3-27.0.43'
|
minecraft 'net.minecraftforge:forge:1.14.3-27.0.57'
|
||||||
|
|
||||||
// You may put jars on which you depend on in ./libs or you may define them like so..
|
// You may put jars on which you depend on in ./libs or you may define them like so..
|
||||||
// compile "some.group:artifact:version:classifier"
|
// compile "some.group:artifact:version:classifier"
|
||||||
|
|
|
@ -2,8 +2,8 @@ package com.simibubi.create;
|
||||||
|
|
||||||
import com.simibubi.create.item.ItemBlueprint;
|
import com.simibubi.create.item.ItemBlueprint;
|
||||||
import com.simibubi.create.item.ItemBlueprintAndQuill;
|
import com.simibubi.create.item.ItemBlueprintAndQuill;
|
||||||
|
import com.simibubi.create.item.ItemTreeFertilizer;
|
||||||
import com.simibubi.create.item.ItemWandSymmetry;
|
import com.simibubi.create.item.ItemWandSymmetry;
|
||||||
import com.simibubi.create.supertree.ItemTreeFertilizer;
|
|
||||||
|
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.Item.Properties;
|
import net.minecraft.item.Item.Properties;
|
||||||
|
|
|
@ -5,7 +5,6 @@ import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import com.simibubi.create.gui.Keyboard;
|
import com.simibubi.create.gui.Keyboard;
|
||||||
import com.simibubi.create.networking.Packets;
|
import com.simibubi.create.networking.Packets;
|
||||||
import com.simibubi.create.schematic.BlueprintAndQuillHandler;
|
|
||||||
import com.simibubi.create.schematic.BlueprintHandler;
|
import com.simibubi.create.schematic.BlueprintHandler;
|
||||||
import com.simibubi.create.schematic.SchematicHologram;
|
import com.simibubi.create.schematic.SchematicHologram;
|
||||||
|
|
||||||
|
@ -63,9 +62,6 @@ public class Create {
|
||||||
new SchematicHologram();
|
new SchematicHologram();
|
||||||
new BlueprintHandler();
|
new BlueprintHandler();
|
||||||
ScrollFixer.init();
|
ScrollFixer.init();
|
||||||
ScrollFixer.addMouseWheelListener(BlueprintHandler.instance::onScroll);
|
|
||||||
ScrollFixer.addMouseWheelListener(BlueprintAndQuillHandler::onScroll);
|
|
||||||
|
|
||||||
TOOL_MENU = new KeyBinding("Tool Menu (Hold)", Keyboard.LALT, NAME);
|
TOOL_MENU = new KeyBinding("Tool Menu (Hold)", Keyboard.LALT, NAME);
|
||||||
ClientRegistry.registerKeyBinding(TOOL_MENU);
|
ClientRegistry.registerKeyBinding(TOOL_MENU);
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,49 +2,45 @@ package com.simibubi.create;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
|
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import org.lwjgl.glfw.GLFWScrollCallback;
|
import org.lwjgl.glfw.GLFWScrollCallback;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.MouseHelper;
|
import net.minecraft.client.MouseHelper;
|
||||||
|
import net.minecraftforge.client.event.GuiScreenEvent.MouseScrollEvent;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
|
||||||
|
|
||||||
public class ScrollFixer {
|
public class ScrollFixer {
|
||||||
|
|
||||||
private static List<Predicate<Double>> listeners;
|
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
listeners = new ArrayList<>();
|
|
||||||
Method method;
|
|
||||||
try {
|
try {
|
||||||
MouseHelper mouseHelper = Minecraft.getInstance().mouseHelper;
|
MouseHelper mouseHelper = Minecraft.getInstance().mouseHelper;
|
||||||
method = mouseHelper.getClass().getDeclaredMethod("scrollCallback", Long.TYPE,
|
Method method = ObfuscationReflectionHelper.findMethod(mouseHelper.getClass(), "func_198020_a", Long.TYPE,
|
||||||
Double.TYPE, Double.TYPE);
|
Double.TYPE, Double.TYPE);
|
||||||
method.setAccessible(true);
|
|
||||||
GLFW.glfwSetScrollCallback(Minecraft.getInstance().mainWindow.getHandle(), new GLFWScrollCallback() {
|
GLFWScrollCallback callback = new GLFWScrollCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void invoke(long win, double dx, double dy) {
|
public void invoke(long win, double dx, double dy) {
|
||||||
for (Predicate<Double> consumer : listeners) {
|
MouseScrollEvent.Post event = new MouseScrollEvent.Post(null, mouseHelper.getMouseX(),
|
||||||
if (consumer.test(dy))
|
mouseHelper.getMouseY(), dy);
|
||||||
return;
|
boolean canceled = MinecraftForge.EVENT_BUS.post(event);
|
||||||
}
|
if (canceled)
|
||||||
|
return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
method.invoke(mouseHelper, win, dx, dy);
|
method.invoke(mouseHelper, win, dx, dy);
|
||||||
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
} catch (NoSuchMethodException | SecurityException e1) {
|
|
||||||
|
GLFW.glfwSetScrollCallback(Minecraft.getInstance().mainWindow.getHandle(), callback);
|
||||||
|
} catch (SecurityException e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addMouseWheelListener(Predicate<Double> callback) {
|
|
||||||
listeners.add(callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,9 @@ public class BlueprintHotbarOverlay extends AbstractGui {
|
||||||
MainWindow mainWindow = Minecraft.getInstance().mainWindow;
|
MainWindow mainWindow = Minecraft.getInstance().mainWindow;
|
||||||
int x = mainWindow.getScaledWidth() / 2 - 92;
|
int x = mainWindow.getScaledWidth() / 2 - 92;
|
||||||
int y = mainWindow.getScaledHeight() - 23;
|
int y = mainWindow.getScaledHeight() - 23;
|
||||||
GlStateManager.enableBlend();
|
|
||||||
GlStateManager.enableAlphaTest();
|
GlStateManager.enableAlphaTest();
|
||||||
GuiResources.BLUEPRINT_SLOT.draw(this, x + 20 * slot, y);
|
GuiResources.BLUEPRINT_SLOT.draw(this, x + 20 * slot, y);
|
||||||
|
GlStateManager.disableAlphaTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.simibubi.create.supertree;
|
package com.simibubi.create.item;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -68,6 +68,9 @@ public class ItemTreeFertilizer extends Item {
|
||||||
|
|
||||||
context.getWorld().setBlockState(actualPos, world.getBlockState(pos));
|
context.getWorld().setBlockState(actualPos, world.getBlockState(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!context.getPlayer().isCreative())
|
||||||
|
context.getItem().shrink(1);
|
||||||
return ActionResultType.SUCCESS;
|
return ActionResultType.SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
|
@ -35,6 +35,7 @@ import net.minecraft.util.math.RayTraceResult.Type;
|
||||||
import net.minecraft.util.text.StringTextComponent;
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
import net.minecraft.world.gen.feature.template.Template;
|
import net.minecraft.world.gen.feature.template.Template;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.client.event.GuiScreenEvent.MouseScrollEvent;
|
||||||
import net.minecraftforge.client.event.InputEvent.MouseInputEvent;
|
import net.minecraftforge.client.event.InputEvent.MouseInputEvent;
|
||||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
@ -58,13 +59,17 @@ public class BlueprintAndQuillHandler {
|
||||||
&& Minecraft.getInstance().currentScreen == null && !Minecraft.getInstance().player.isSneaking();
|
&& Minecraft.getInstance().currentScreen == null && !Minecraft.getInstance().player.isSneaking();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean onScroll(double delta) {
|
@SubscribeEvent
|
||||||
|
// TODO: This is a fabricated event call by ScrollFixer until a proper event exists
|
||||||
|
public static void onMouseScrolled(MouseScrollEvent.Post event) {
|
||||||
|
if (event.getGui() != null)
|
||||||
|
return;
|
||||||
if (!active())
|
if (!active())
|
||||||
return false;
|
return;
|
||||||
if (!Keyboard.isKeyDown(GLFW.GLFW_KEY_LEFT_CONTROL))
|
if (!Keyboard.isKeyDown(GLFW.GLFW_KEY_LEFT_CONTROL))
|
||||||
return false;
|
return;
|
||||||
range = (int) MathHelper.clamp(range + delta, 1, 100);
|
range = (int) MathHelper.clamp(range + event.getScrollDelta(), 1, 100);
|
||||||
return true;
|
event.setCanceled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|
|
@ -37,6 +37,7 @@ import net.minecraftforge.client.event.InputEvent.KeyInputEvent;
|
||||||
import net.minecraftforge.client.event.InputEvent.MouseInputEvent;
|
import net.minecraftforge.client.event.InputEvent.MouseInputEvent;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||||
|
import net.minecraftforge.client.event.GuiScreenEvent.MouseScrollEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
|
||||||
|
@ -215,6 +216,15 @@ public class BlueprintHandler {
|
||||||
toolSelection.focused = true;
|
toolSelection.focused = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
// TODO: This is a fabricated event call by ScrollFixer until a proper event exists
|
||||||
|
public static void onMouseScrolled(MouseScrollEvent.Post event) {
|
||||||
|
if (event.getGui() != null)
|
||||||
|
return;
|
||||||
|
if (instance.onScroll(event.getScrollDelta()))
|
||||||
|
event.setCanceled(true);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean onScroll(double delta) {
|
public boolean onScroll(double delta) {
|
||||||
if (!active)
|
if (!active)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -14,26 +14,18 @@ loaderVersion="[26,)" #mandatory (26 is current forge version)
|
||||||
# The modid of the mod
|
# The modid of the mod
|
||||||
modId="create" #mandatory
|
modId="create" #mandatory
|
||||||
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
|
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
|
||||||
version="${file.jarVersion}" #mandatory
|
version="0.0.1" #mandatory
|
||||||
# A display name for the mod
|
# A display name for the mod
|
||||||
displayName="Create" #mandatory
|
displayName="Create" #mandatory
|
||||||
# A URL to query for updates for this mod. See the JSON update specification <here>
|
# A URL to query for updates for this mod. See the JSON update specification <here>
|
||||||
#updateJSONURL=""#optional
|
#updateJSONURL=""#optional
|
||||||
# A URL for the "homepage" for this mod, displayed in the mod UI
|
# A URL for the "homepage" for this mod, displayed in the mod UI
|
||||||
displayURL="http://example.com/" #optional
|
|
||||||
# A file name (in the root of the mod JAR) containing a logo for display
|
# A file name (in the root of the mod JAR) containing a logo for display
|
||||||
logoFile="examplemod.png" #optional
|
|
||||||
# A text field displayed in the mod UI
|
|
||||||
credits="Thanks for this example mod goes to Java" #optional
|
|
||||||
# A text field displayed in the mod UI
|
# A text field displayed in the mod UI
|
||||||
authors="simibubi" #optional
|
authors="simibubi" #optional
|
||||||
# The description text for the mod (multi line!) (#mandatory)
|
# The description text for the mod (multi line!) (#mandatory)
|
||||||
description='''
|
description='''
|
||||||
This is a long form description of the mod. You can write whatever you want here
|
A handful of additions to aid the creative survivalist.
|
||||||
|
|
||||||
Have some lorem ipsum.
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magna. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sagittis luctus odio eu tempus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque volutpat ligula eget lacus auctor sagittis. In hac habitasse platea dictumst. Nunc gravida elit vitae sem vehicula efficitur. Donec mattis ipsum et arcu lobortis, eleifend sagittis sem rutrum. Cras pharetra quam eget posuere fermentum. Sed id tincidunt justo. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
||||||
'''
|
'''
|
||||||
# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.
|
# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.
|
||||||
[[dependencies.examplemod]] #optional
|
[[dependencies.examplemod]] #optional
|
||||||
|
|
Loading…
Reference in a new issue