Updated forge.

Tweaked shader.
Cancel build mode with esc, e, leftclick.
Added breaking blocks with buildmodes.
This commit is contained in:
Christian Knaapen
2019-02-06 03:53:25 +01:00
parent dfc2b11e94
commit 7321d1af01
15 changed files with 113 additions and 38 deletions

View File

@@ -21,7 +21,7 @@ compileJava {
}
minecraft {
version = "1.12.2-14.23.4.2705"
version = "1.12.2-14.23.5.2768"
runDir = "run"
// the mappings can be changed at any time, and must be in the following format.
@@ -29,7 +29,7 @@ minecraft {
// stable_# stables are built at the discretion of the MCP team.
// 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.
mappings = "snapshot_20171003"
mappings = "stable_39"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}

View File

@@ -25,10 +25,7 @@ import nl.requios.effortlessbuilding.item.ItemRandomizerBag;
import nl.requios.effortlessbuilding.item.ItemReachUpgrade1;
import nl.requios.effortlessbuilding.item.ItemReachUpgrade2;
import nl.requios.effortlessbuilding.item.ItemReachUpgrade3;
import nl.requios.effortlessbuilding.network.BlockBrokenMessage;
import nl.requios.effortlessbuilding.network.BlockPlacedMessage;
import nl.requios.effortlessbuilding.network.ModeSettingsMessage;
import nl.requios.effortlessbuilding.network.ModifierSettingsMessage;
import nl.requios.effortlessbuilding.network.*;
import nl.requios.effortlessbuilding.proxy.IProxy;
import org.apache.logging.log4j.Logger;
@@ -90,6 +87,8 @@ public class EffortlessBuilding
EffortlessBuilding.packetHandler.registerMessage(BlockBrokenMessage.MessageHandler.class, BlockBrokenMessage.class, 3, Side.SERVER);
EffortlessBuilding.packetHandler.registerMessage(CancelModeMessage.MessageHandler.class, CancelModeMessage.class, 4, Side.SERVER);
proxy.preInit(event);
}

View File

@@ -108,15 +108,18 @@ public class BuildModes {
public static void onBlockBroken(BlockEvent.BreakEvent event) {
World world = event.getWorld();
EntityPlayer player = event.getPlayer();
BlockPos pos = event.getPos();
if (world.isRemote) return;
//get coordinates
List<BlockPos> coordinates = findCoordinates(event.getPlayer(), pos);
ModeSettingsManager.ModeSettings modeSettings = ModeSettingsManager.getModeSettings(player);
BuildModeEnum buildMode = modeSettings.getBuildMode();
List<BlockPos> coordinates = buildMode.instance.onRightClick(player, pos, EnumFacing.UP, Vec3d.ZERO);
//let buildmodifiers break blocks
BuildModifiers.onBlockBroken(event.getPlayer(), coordinates);
BuildModifiers.onBlockBroken(player, coordinates);
}
public static List<BlockPos> findCoordinates(EntityPlayer player, BlockPos startPos) {

View File

@@ -262,6 +262,13 @@ public class RenderHelper implements IWorldEventListener {
//get coordinates
List<BlockPos> startCoordinates = BuildModes.findCoordinates(player, startPos);
BlockPos firstPos = BlockPos.ORIGIN, secondPos = BlockPos.ORIGIN;
//remember first and last pos for highlighting
if (!startCoordinates.isEmpty()) {
firstPos = startCoordinates.get(0);
secondPos = startCoordinates.get(startCoordinates.size() - 1);
}
//Limit number of blocks you can place
int limit = ReachHelper.getMaxBlocksPlacedAtOnce(player);
if (startCoordinates.size() > limit) {
@@ -300,7 +307,7 @@ public class RenderHelper implements IWorldEventListener {
SurvivalHelper.mayPlace(player.world, Block.getBlockFromItem(itemstack.getItem()), blockState, blockPos, true, EnumFacing.UP, player) &&
SurvivalHelper.canReplace(player.world, player, blockPos)) {
ShaderHelper.useShader(ShaderHelper.psiBar, generateCallback(percentile, new Vec3d(blockPos), i == 0 || i == newCoordinates.size() - 1));
ShaderHelper.useShader(ShaderHelper.psiBar, generateCallback(percentile, new Vec3d(blockPos), /*blockPos == firstPos ||*/ blockPos == secondPos));
renderBlockPreview(dispatcher, blockPos, blockState);
}
}

View File

@@ -36,7 +36,7 @@ public class ItemRandomizerBag extends Item {
public ItemRandomizerBag() {
this.setRegistryName(EffortlessBuilding.MODID, "randomizer_bag");
this.setUnlocalizedName(this.getRegistryName().toString());
this.setTranslationKey(this.getRegistryName().toString());
this.maxStackSize = 1;
this.setCreativeTab(CreativeTabs.TOOLS);
@@ -181,8 +181,8 @@ public class ItemRandomizerBag extends Item {
}
@Override
public String getUnlocalizedName() {
return super.getUnlocalizedName();
public String getTranslationKey() {
return super.getTranslationKey();
}
public static void resetRandomness() {

View File

@@ -21,7 +21,7 @@ public class ItemReachUpgrade1 extends Item {
public ItemReachUpgrade1() {
this.setRegistryName(EffortlessBuilding.MODID, "reach_upgrade1");
this.setUnlocalizedName(this.getRegistryName().toString());
this.setTranslationKey(this.getRegistryName().toString());
this.maxStackSize = 1;
this.setCreativeTab(CreativeTabs.TOOLS);
@@ -67,7 +67,7 @@ public class ItemReachUpgrade1 extends Item {
}
@Override
public String getUnlocalizedName() {
return super.getUnlocalizedName();
public String getTranslationKey() {
return super.getTranslationKey();
}
}

View File

@@ -20,7 +20,7 @@ public class ItemReachUpgrade2 extends Item {
public ItemReachUpgrade2() {
this.setRegistryName(EffortlessBuilding.MODID, "reach_upgrade2");
this.setUnlocalizedName(this.getRegistryName().toString());
this.setTranslationKey(this.getRegistryName().toString());
this.maxStackSize = 1;
this.setCreativeTab(CreativeTabs.TOOLS);
@@ -65,7 +65,7 @@ public class ItemReachUpgrade2 extends Item {
}
@Override
public String getUnlocalizedName() {
return super.getUnlocalizedName();
public String getTranslationKey() {
return super.getTranslationKey();
}
}

View File

@@ -20,7 +20,7 @@ public class ItemReachUpgrade3 extends Item {
public ItemReachUpgrade3() {
this.setRegistryName(EffortlessBuilding.MODID, "reach_upgrade3");
this.setUnlocalizedName(this.getRegistryName().toString());
this.setTranslationKey(this.getRegistryName().toString());
this.maxStackSize = 1;
this.setCreativeTab(CreativeTabs.TOOLS);
@@ -68,7 +68,7 @@ public class ItemReachUpgrade3 extends Item {
}
@Override
public String getUnlocalizedName() {
return super.getUnlocalizedName();
public String getTranslationKey() {
return super.getTranslationKey();
}
}

View File

@@ -66,7 +66,7 @@ public class BlockBrokenMessage implements IMessage {
public void fromBytes(ByteBuf buf) {
blockHit = buf.readBoolean();
blockPos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
sideHit = EnumFacing.getFront(buf.readInt());
sideHit = EnumFacing.byIndex(buf.readInt());
hitVec = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble());
}

View File

@@ -67,7 +67,7 @@ public class BlockPlacedMessage implements IMessage {
public void fromBytes(ByteBuf buf) {
blockHit = buf.readBoolean();
blockPos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
sideHit = EnumFacing.getFront(buf.readInt());
sideHit = EnumFacing.byIndex(buf.readInt());
hitVec = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble());
}

View File

@@ -0,0 +1,42 @@
package nl.requios.effortlessbuilding.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.IThreadListener;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import nl.requios.effortlessbuilding.EffortlessBuilding;
import nl.requios.effortlessbuilding.buildmode.BuildModes;
public class CancelModeMessage implements IMessage {
@Override
public void toBytes(ByteBuf buf) {
}
@Override
public void fromBytes(ByteBuf buf) {
}
// The params of the IMessageHandler are <REQ, REPLY>
public static class MessageHandler implements IMessageHandler<CancelModeMessage, IMessage> {
// Do note that the default constructor is required, but implicitly defined in this case
@Override
public IMessage onMessage(CancelModeMessage message, MessageContext ctx) {
// Execute the action on the main server thread by adding it as a scheduled task
IThreadListener threadListener = EffortlessBuilding.proxy.getThreadListenerFromContext(ctx);
threadListener.addScheduledTask(() -> {
EntityPlayer player = EffortlessBuilding.proxy.getPlayerEntityFromContext(ctx);
BuildModes.initializeMode(player);
});
// No response packet
return null;
}
}
}

View File

@@ -26,6 +26,7 @@ import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.client.event.GuiOpenEvent;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.TextureStitchEvent;
@@ -54,10 +55,7 @@ import nl.requios.effortlessbuilding.helper.ReachHelper;
import nl.requios.effortlessbuilding.helper.RenderHelper;
import nl.requios.effortlessbuilding.helper.ShaderHelper;
import nl.requios.effortlessbuilding.item.ItemRandomizerBag;
import nl.requios.effortlessbuilding.network.BlockBrokenMessage;
import nl.requios.effortlessbuilding.network.BlockPlacedMessage;
import nl.requios.effortlessbuilding.network.ModeSettingsMessage;
import nl.requios.effortlessbuilding.network.ModifierSettingsMessage;
import nl.requios.effortlessbuilding.network.*;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
@@ -84,13 +82,14 @@ public class ClientProxy implements IProxy {
@Override
public void init(FMLInitializationEvent event) {
// register key bindings
keyBindings = new KeyBinding[4];
keyBindings = new KeyBinding[5];
// instantiate the key bindings
keyBindings[0] = new KeyBinding("key.effortlessbuilding.hud.desc", Keyboard.KEY_ADD, "key.effortlessbuilding.category");
keyBindings[1] = new KeyBinding("key.effortlessbuilding.replace.desc", Keyboard.KEY_SUBTRACT, "key.effortlessbuilding.category");
keyBindings[2] = new KeyBinding("key.effortlessbuilding.creative.desc", Keyboard.KEY_F4, "key.effortlessbuilding.category");
keyBindings[3] = new KeyBinding("key.effortlessbuilding.mode.desc", Keyboard.KEY_LMENU, "key.effortlessbuilding.category");
keyBindings[4] = new KeyBinding("Reload shaders", Keyboard.KEY_TAB, "key.effortlessbuilding.category");
// register all the key bindings
for (int i = 0; i < keyBindings.length; ++i) {
@@ -266,6 +265,9 @@ public class ClientProxy implements IProxy {
breakCooldown--;
}
}
//EffortlessBuilding.packetHandler.sendToServer(new CancelModeMessage());
} else {
breakCooldown = 0;
}
@@ -293,9 +295,6 @@ public class ClientProxy implements IProxy {
//QuickReplace toggle
if (keyBindings[1].isPressed()) {
//TODO testing
EffortlessBuilding.log(player, "ShaderHelper init");
ShaderHelper.init();
ModifierSettingsManager.ModifierSettings modifierSettings = ModifierSettingsManager.getModifierSettings(player);
@@ -314,6 +313,12 @@ public class ClientProxy implements IProxy {
}
}
if (keyBindings[4].isPressed()) {
//TODO remove
ShaderHelper.init();
EffortlessBuilding.log(player, "Reloaded shaders");
}
}
@SubscribeEvent
@@ -349,6 +354,14 @@ public class ClientProxy implements IProxy {
}
@SubscribeEvent
public static void onGuiOpen(GuiOpenEvent event) {
EntityPlayer player = Minecraft.getMinecraft().player;
if (player != null) {
BuildModes.initializeMode(player);
}
}
@SubscribeEvent
public static void onRenderGameOverlay(final RenderGameOverlayEvent.Post event ) {
EntityPlayerSP player = Minecraft.getMinecraft().player;

View File

@@ -97,12 +97,23 @@ void main() {
float b = color.b * gl_Color.b;
float a = color.a; // Ignore gl_Color.a as we don't want to make use of that for the dissolve effect
float pulse = (sin(time / 10.0) + 1.0) / 2.0;
vec4 pulseColor = texture2D(mask, maskcoord + time / 1000.0);
vec4 pulseColor2 = texture2D(mask, vec2(maskcoord.x - time / 1300.0, maskcoord.y - time / 1300.0));
r -= 0.1;
g += 0.0;
b += 0.1;
float pulse = (sin(time / 5.0) + 1.0) / 2.0;
pulse = 1.0;//pulse / 2.0 + 0.5;
vec4 pulseColor = texture2D(mask, maskcoord + time / 400.0);
vec4 pulseColor2 = texture2D(mask, vec2(maskcoord.x - time / 400.0, maskcoord.y - time / 400.0));
float pulseGreyScale = pulseColor.r + pulseColor2.r / 2.0;
g += (1.0 - g) * pulseGreyScale * pulse * 0.2;
b += (1.0 - b) * pulseGreyScale * pulse;
r -= r * pulseColor.r * pulse * 0.2;
g += (1.0 - g) * pulseColor.r * pulse * 0.2;
b += (1.0 - b) * pulseColor.r * pulse * 0.8;
r -= r * pulseColor2.r * pulse * 0.4;
g += (1.0 - g) * pulseColor2.r * pulse * 0.2;
b += (1.0 - b) * pulseColor2.r * pulse;
// float exr1 = sin(texcoord.x * 2 + texcoord.y * 10 + time * 0.035);
// float exr2 = sin(texcoord.x * 20 + texcoord.y * 2 + time * 0.15);
@@ -119,9 +130,9 @@ void main() {
// g -= exr;
if(highlight == 1) {
r -= 0.2;
r += 0.0;
g += 0.1;
b -= 0.2;
g -= 0.2;
}
r = max(0, min(1, r));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 B

After

Width:  |  Height:  |  Size: 394 B