Update #24 - 1000s of optimizations, shared worlds on desktop

This commit is contained in:
lax1dude 2024-03-02 20:51:44 -08:00
parent a50c93cb75
commit 8ab65942c5
624 changed files with 8091 additions and 3620 deletions

22
CREDITS
View File

@ -539,6 +539,28 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Project Name: webrtc-java
Project Author: Alex Andres
Project URL: https://github.com/devopvoid/webrtc-java
Used For: WebRTC LAN worlds in desktop runtime
* Copyright 2019 Alex Andres
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Project Name: Netty
Project Author: Netty Project
Project URL: https://netty.io/

View File

@ -125,6 +125,7 @@ The default eaglercraftXOpts values is this:
- `assetsURI:` the URL of the assets.epk file **(required)**
- `localesURI:` the URL where extra .lang files can be found
- `worldsDB:` the name of the IndexedDB database to store worlds in
- `resourcePacksDB:` the name of the IndexedDB database to store resource packs in
- `demoMode:` whether to launch the game in java edition demo mode
- `servers:` a list of default servers to display on the Multiplayer screen
- `relays:` the default list of shared world relays to use for invites

Binary file not shown.

View File

@ -6,7 +6,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.URL;
import java.net.URLClassLoader;

View File

@ -2,7 +2,6 @@ package net.lax1dude.eaglercraft.v1_8.buildtools.task.diff;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;

View File

@ -14,7 +14,6 @@ import java.nio.CharBuffer;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
@ -23,14 +22,12 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import com.github.difflib.DiffUtils;
import com.github.difflib.UnifiedDiffUtils;
import com.github.difflib.patch.Patch;
import net.lax1dude.eaglercraft.v1_8.buildtools.EaglerBuildToolsConfig;

View File

@ -123,10 +123,6 @@ public class DecompileMinecraft {
System.out.println("This will take a while, go get a drink or something lol.");
System.out.println();
System.out.println("Staying hydrated is important when u work on a fucked up project that");
System.out.println("will make you angry enough put your fists through your bedroom wall");
System.out.println();
ex = JARSubprocess.runJava(mcpDataTMP, new String[] {
"-jar", "fernflower.jar", "-din=1", "-rbr=1", "-dgs=1", "-asc=1", "-rsy=1", "-iec=1",
"-ren=0", "-jvn=1", "-udv=1", "-ump=1", "-log=WARN", deobfOut2.getAbsolutePath(),

View File

@ -1 +1 @@
u23
u24

View File

@ -2,11 +2,8 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.auth;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.function.Consumer;
/**
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.

View File

@ -13,7 +13,6 @@ import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.handler.codec.http.DefaultFullHttpResponse;
import io.netty.handler.codec.http.DefaultHttpResponse;
import io.netty.handler.codec.http.HttpHeaderNames;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpRequest;

View File

@ -7,7 +7,6 @@ import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

View File

@ -7,7 +7,6 @@ import java.util.List;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.api.query.EaglerQueryHandler;
import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.api.query.EaglerQuerySimpleHandler;
import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.api.query.MOTDConnection;
import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.config.EaglerListenerConfig;

View File

@ -4,7 +4,6 @@ import java.io.IOException;
import java.net.InetAddress;
import java.net.URI;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;

View File

@ -12,11 +12,8 @@ import java.sql.Statement;
import java.util.Properties;
import java.util.UUID;
import java.util.logging.Level;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.InflaterInputStream;
import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.EaglerXBungee;
import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.sqlite.EaglerDrivers;

View File

@ -12,8 +12,6 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
import java.util.logging.Logger;
import org.apache.commons.codec.binary.Base64;
import com.google.common.collect.Multimap;

View File

@ -1,4 +1,4 @@
# 143 files to delete:
# 144 files to delete:
net/minecraft/client/renderer/VertexBufferUploader.java
net/minecraft/realms/DisconnectedRealmsScreen.java
net/minecraft/client/stream/Metadata.java
@ -65,6 +65,7 @@ net/minecraft/client/shader/ShaderGroup.java
net/minecraft/server/management/UserListWhitelist.java
net/minecraft/client/shader/ShaderLoader.java
net/minecraft/realms/RealmsEditBox.java
net/minecraft/client/resources/ResourceIndex.java
net/minecraft/server/management/UserListEntry.java
net/minecraft/network/NettyEncryptionTranslator.java
net/minecraft/client/audio/SoundManager.java

View File

@ -5,8 +5,10 @@
# Version: 1.0
# Author: lax1dude
> CHANGE 2 : 4 @ 2 : 5
> CHANGE 2 : 6 @ 2 : 5
~ import java.util.List;
~
~ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
~
@ -96,7 +98,13 @@
+ (double) blockpos.getZ() + 0.5D, 5.0F, true, true);
+ return true;
> CHANGE 40 : 41 @ 40 : 41
> CHANGE 4 : 7 @ 4 : 5
~ List<EntityPlayer> playerEntities = worldIn.playerEntities;
~ for (int i = 0, l = playerEntities.size(); i < l; ++i) {
~ EntityPlayer entityplayer = playerEntities.get(i);
> CHANGE 35 : 36 @ 35 : 36
~ public Item getItemDropped(IBlockState iblockstate, EaglercraftRandom var2, int var3) {

View File

@ -9,7 +9,13 @@
~ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
> CHANGE 164 : 165 @ 164 : 165
> CHANGE 52 : 55 @ 52 : 53
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 111 : 112 @ 111 : 112
~ public void randomTick(World var1, BlockPos var2, IBlockState var3, EaglercraftRandom var4) {

View File

@ -14,4 +14,10 @@
~ public void updateTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom var4) {
> CHANGE 56 : 59 @ 56 : 57
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> EOF

View File

@ -5,9 +5,18 @@
# Version: 1.0
# Author: lax1dude
> DELETE 2 @ 2 : 4
> CHANGE 2 : 4 @ 2 : 4
> CHANGE 130 : 131 @ 130 : 133
~ import java.util.List;
~
> CHANGE 68 : 71 @ 68 : 69
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facings();
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 61 : 62 @ 61 : 64
~ if (!worldIn.isRemote) {
@ -17,8 +26,36 @@
+ return state;
> CHANGE 117 : 118 @ 117 : 120
> CHANGE 5 : 8 @ 5 : 6
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing1 = facings[i];
> CHANGE 80 : 83 @ 80 : 81
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 30 : 31 @ 30 : 33
~ {
> CHANGE 23 : 26 @ 23 : 24
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 61 : 62 @ 61 : 62
~ List<Entity> entityList = worldIn.getEntitiesWithinAABB(EntityOcelot.class,
> CHANGE 1 : 4 @ 1 : 2
~ (double) (pos.getX() + 1), (double) (pos.getY() + 2), (double) (pos.getZ() + 1)));
~ for (int i = 0, l = entityList.size(); i < l; ++i) {
~ Entity entity = entityList.get(i);
> EOF

View File

@ -9,4 +9,10 @@
~
> CHANGE 26 : 29 @ 26 : 27
~ EnumDyeColor[] colors = EnumDyeColor.META_LOOKUP;
~ for (int i = 0; i < colors.length; ++i) {
~ EnumDyeColor enumdyecolor = colors[i];
> EOF

View File

@ -20,4 +20,14 @@
+ }
+
> CHANGE 50 : 51 @ 50 : 51
~ private static final BlockDirt.DirtType[] METADATA_LOOKUP = new BlockDirt.DirtType[3];
> CHANGE 45 : 48 @ 45 : 47
~ BlockDirt.DirtType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ METADATA_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -27,7 +27,13 @@
~ public Item getItemDropped(IBlockState iblockstate, EaglercraftRandom random, int var3) {
> CHANGE 114 : 115 @ 114 : 115
> CHANGE 98 : 101 @ 98 : 100
~ BlockDoublePlant.EnumPlantType[] types = BlockDoublePlant.EnumPlantType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMeta()));
> CHANGE 14 : 15 @ 14 : 15
~ public boolean canUseBonemeal(World var1, EaglercraftRandom var2, BlockPos var3, IBlockState var4) {
@ -35,4 +41,14 @@
~ public void grow(World world, EaglercraftRandom var2, BlockPos blockpos, IBlockState var4) {
> CHANGE 50 : 51 @ 50 : 51
~ private static final BlockDoublePlant.EnumPlantType[] META_LOOKUP = new BlockDoublePlant.EnumPlantType[6];
> CHANGE 39 : 42 @ 39 : 41
~ BlockDoublePlant.EnumPlantType[] types = BlockDoublePlant.EnumPlantType.values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMeta()] = types[i];
> EOF

View File

@ -17,8 +17,26 @@
~ public void updateTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom random) {
> CHANGE 75 : 76 @ 75 : 76
> CHANGE 11 : 14 @ 11 : 12
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int m = 0; m < facings.length; ++m) {
~ EnumFacing enumfacing = facings[m];
> CHANGE 63 : 64 @ 63 : 64
~ Set<EnumFacing> set = this.getPossibleFlowDirections(world, blockpos);
> CHANGE 35 : 38 @ 35 : 36
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int l = 0; l < facings.length; ++l) {
~ EnumFacing enumfacing = facings[l];
> CHANGE 27 : 30 @ 27 : 28
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int k = 0; k < facings.length; ++k) {
~ EnumFacing enumfacing = facings[k];
> EOF

View File

@ -26,7 +26,19 @@
~ private void catchOnFire(World worldIn, BlockPos pos, int chance, EaglercraftRandom random, int age) {
> CHANGE 77 : 78 @ 77 : 78
> CHANGE 23 : 26 @ 23 : 24
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 14 : 17 @ 14 : 16
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int j = 0; j < facings.length; ++j) {
~ i = Math.max(this.getEncouragement(worldIn.getBlockState(pos.offset(facings[j])).getBlock()), i);
> CHANGE 37 : 38 @ 37 : 38
~ public void randomDisplayTick(World world, BlockPos blockpos, IBlockState var3, EaglercraftRandom random) {

View File

@ -15,4 +15,22 @@
~
> CHANGE 24 : 27 @ 24 : 27
~ BlockFlower.EnumFlowerType[] flowerTypes = BlockFlower.EnumFlowerType.getTypes(this.getBlockType());
~ for (int i = 0; i < flowerTypes.length; ++i) {
~ list.add(new ItemStack(item, 1, flowerTypes[i].getMeta()));
> CHANGE 56 : 59 @ 56 : 58
~ public static final BlockFlower.EnumFlowerType[] _VALUES = EnumFlowerType.values();
~
~ private static final BlockFlower.EnumFlowerType[][] TYPES_FOR_BLOCK = new BlockFlower.EnumFlowerType[_VALUES.length][];
> CHANGE 50 : 53 @ 50 : 51
~ BlockFlower.EnumFlowerColor[] colors = BlockFlower.EnumFlowerColor.values();
~ for (int i = 0; i < colors.length; ++i) {
~ final BlockFlower.EnumFlowerColor blockflower$enumflowercolor = colors[i];
> EOF

View File

@ -26,4 +26,10 @@
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
> CHANGE 61 : 64 @ 61 : 63
~ BlockHugeMushroom.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -7,4 +7,10 @@
> DELETE 2 @ 2 : 3
> CHANGE 75 : 78 @ 75 : 76
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing1 = facings[i];
> EOF

View File

@ -18,4 +18,26 @@
+ }
+
> CHANGE 17 : 20 @ 17 : 18
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 19 : 22 @ 19 : 20
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing1 = facings[i];
> CHANGE 145 : 146 @ 145 : 146
~ private static final BlockLever.EnumOrientation[] META_LOOKUP = new BlockLever.EnumOrientation[8];
> CHANGE 70 : 73 @ 70 : 72
~ BlockLever.EnumOrientation[] orientations = values();
~ for (int i = 0; i < orientations.length; ++i) {
~ META_LOOKUP[orientations[i].getMetadata()] = orientations[i];
> EOF

View File

@ -18,7 +18,18 @@
~ public int quantityDropped(EaglercraftRandom var1) {
> CHANGE 61 : 65 @ 61 : 62
> CHANGE 7 : 10 @ 7 : 8
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int m = 0; m < facings.length; ++m) {
~ EnumFacing enumfacing = facings[m];
> CHANGE 20 : 22 @ 20 : 21
~ for (int j = 0; j < facings.length; ++j) {
~ EnumFacing enumfacing1 = facings[j];
> CHANGE 32 : 36 @ 32 : 33
~ return this.blockMaterial == Material.water
~ ? (DeferredStateManager.isRenderingRealisticWater() ? EnumWorldBlockLayer.REALISTIC_WATER
@ -29,4 +40,10 @@
~ public void randomDisplayTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom random) {
> CHANGE 69 : 72 @ 69 : 70
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int j = 0; j < facings.length; ++j) {
~ EnumFacing enumfacing = facings[j];
> EOF

View File

@ -9,4 +9,15 @@
~
> CHANGE 85 : 88 @ 85 : 86
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 10 : 12 @ 10 : 11
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing1 = facings[i];
> EOF

View File

@ -20,4 +20,20 @@
+ }
+
> CHANGE 5 : 8 @ 5 : 7
~ BlockPlanks.EnumType[] types = BlockPlanks.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 25 : 26 @ 25 : 26
~ public static final BlockPlanks.EnumType[] META_LOOKUP = new BlockPlanks.EnumType[6];
> CHANGE 45 : 48 @ 45 : 47
~ BlockPlanks.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -27,4 +27,19 @@
~ EaglerLoadingCache loadingcache = BlockPattern.func_181627_a(parWorld, true);
> CHANGE 8 : 10 @ 8 : 9
~ EnumFacing.AxisDirection[] axis = EnumFacing.AxisDirection._VALUES;
~ int[] aint = new int[axis.length];
> CHANGE 3 : 5 @ 3 : 4
~ for (int k = 0; k < axis.length; ++k) {
~ EnumFacing.AxisDirection enumfacing$axisdirection = axis[k];
> CHANGE 20 : 22 @ 20 : 21
~ for (int k = 0; k < axis.length; ++k) {
~ EnumFacing.AxisDirection enumfacing$axisdirection2 = axis[k];
> EOF

View File

@ -13,4 +13,9 @@
~ List<Entity> list;
> CHANGE 12 : 14 @ 12 : 13
~ for (int i = 0, l = list.size(); i < l; ++i) {
~ Entity entity = list.get(i);
> EOF

View File

@ -20,4 +20,14 @@
+ }
+
> CHANGE 35 : 36 @ 35 : 36
~ private static final BlockPrismarine.EnumType[] META_LOOKUP = new BlockPrismarine.EnumType[3];
> CHANGE 35 : 38 @ 35 : 37
~ BlockPrismarine.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -20,4 +20,14 @@
+ }
+
> CHANGE 59 : 60 @ 59 : 60
~ private static final BlockQuartz.EnumType[] META_LOOKUP = new BlockQuartz.EnumType[5];
> CHANGE 31 : 34 @ 31 : 33
~ BlockQuartz.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -17,4 +17,21 @@
> DELETE 31 @ 31 : 32
> CHANGE 42 : 43 @ 42 : 43
~ private static final BlockRailBase.EnumRailDirection[] META_LOOKUP = new BlockRailBase.EnumRailDirection[10];
> CHANGE 34 : 37 @ 34 : 36
~ BlockRailBase.EnumRailDirection[] directions = values();
~ for (int i = 0; i < directions.length; ++i) {
~ META_LOOKUP[directions[i].getMetadata()] = directions[i];
> CHANGE 124 : 128 @ 124 : 126
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int j = 0; j < facings.length; ++j) {
~ if (this.hasRailAt(this.pos.offsetEvenFaster(facings[j], tmp))) {
> EOF

View File

@ -14,9 +14,8 @@
~
~ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
> CHANGE 18 : 20 @ 18 : 27
> CHANGE 18 : 19 @ 18 : 27
~
~ public static PropertyEnum<BlockRailBase.EnumRailDirection> SHAPE;
> INSERT 9 : 21 @ 9

View File

@ -20,4 +20,20 @@
+ }
+
> CHANGE 5 : 8 @ 5 : 7
~ BlockRedSandstone.EnumType[] types = BlockRedSandstone.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 20 : 21 @ 20 : 21
~ public static final BlockRedSandstone.EnumType[] META_LOOKUP = new BlockRedSandstone.EnumType[3];
> CHANGE 35 : 38 @ 35 : 37
~ BlockRedSandstone.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -18,4 +18,18 @@
~ public void updateTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom var4) {
> CHANGE 43 : 47 @ 43 : 45
~ EnumFacing[] facings = EnumFacing._VALUES;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int i = 0; i < facings.length; ++i) {
~ world.notifyNeighborsOfStateChange(blockpos.offsetEvenFaster(facings[i], tmp), this);
> CHANGE 93 : 97 @ 93 : 95
~ EnumFacing[] facings = EnumFacing._VALUES;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int i = 0; i < facings.length; ++i) {
~ world.notifyNeighborsOfStateChange(blockpos.offsetEvenFaster(facings[i], tmp), this);
> EOF

View File

@ -15,7 +15,21 @@
~ import com.google.common.collect.Maps;
~
> CHANGE 76 : 77 @ 76 : 77
> CHANGE 51 : 55 @ 51 : 53
~ EnumFacing[] facings = EnumFacing._VALUES;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int i = 0; i < facings.length; ++i) {
~ world.notifyNeighborsOfStateChange(blockpos.offsetEvenFaster(facings[i], tmp), this);
> CHANGE 7 : 11 @ 7 : 9
~ EnumFacing[] facings = EnumFacing._VALUES;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int i = 0; i < facings.length; ++i) {
~ world.notifyNeighborsOfStateChange(blockpos.offsetEvenFaster(facings[i], tmp), this);
> CHANGE 14 : 15 @ 14 : 15
~ public void randomTick(World var1, BlockPos var2, IBlockState var3, EaglercraftRandom var4) {

View File

@ -39,13 +39,113 @@
+ }
+
> CHANGE 49 : 50 @ 49 : 50
> CHANGE 11 : 15 @ 11 : 14
~ BlockPos posTmp = new BlockPos(0, 0, 0);
~ Block block = worldIn.getBlockState(blockpos).getBlock();
~ if (!canConnectTo(worldIn.getBlockState(blockpos), direction) && (block.isBlockNormalCube()
~ || !canConnectUpwardsTo(worldIn.getBlockState(blockpos.offsetEvenFaster(EnumFacing.UP, posTmp))))) {
> CHANGE 2 : 3 @ 2 : 3
~ && canConnectUpwardsTo(worldIn.getBlockState(blockpos.offsetEvenFaster(EnumFacing.UP, posTmp)))
> CHANGE 26 : 29 @ 26 : 28
~ BlockPos fuckOff = blockpos.down();
~ return World.doesBlockHaveSolidTopSurface(world, fuckOff)
~ || world.getBlockState(fuckOff).getBlock() == Blocks.glowstone;
> CHANGE 4 : 5 @ 4 : 5
~ ArrayList<BlockPos> arraylist = Lists.newArrayList(this.blocksNeedingUpdate);
> DELETE 100 @ 100 : 101
> CHANGE 2 : 4 @ 2 : 4
> DELETE 24 @ 24 : 25
~ for (int i = 0, l = arraylist.size(); i < l; ++i) {
~ worldIn.notifyNeighborsOfStateChange(arraylist.get(i), this);
> CHANGE 19 : 25 @ 19 : 22
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int m = 0; m < facings.length; ++m) {
~ EnumFacing enumfacing = facings[m];
~ BlockPos blockpos = pos1.offsetEvenFaster(enumfacing, tmp);
~ boolean flag = blockpos.x != pos2.x || blockpos.z != pos2.z;
> CHANGE 35 : 37 @ 35 : 37
~ for (int m = 0; m < facings.length; ++m) {
~ this.blocksNeedingUpdate.add(pos1.offset(facings[m]));
> CHANGE 10 : 14 @ 10 : 12
~ EnumFacing[] facings = EnumFacing._VALUES;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int i = 0; i < facings.length; ++i) {
~ worldIn.notifyNeighborsOfStateChange(pos.offsetEvenFaster(facings[i], tmp), this);
> CHANGE 9 : 13 @ 9 : 11
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ EnumFacing[] facings = EnumFacing.Plane.VERTICAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ world.notifyNeighborsOfStateChange(blockpos.offsetEvenFaster(facings[i], tmp), this);
> CHANGE 2 : 5 @ 2 : 4
~ facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ this.notifyWireNeighborsOfStateChange(world, blockpos.offsetEvenFaster(facings[i], tmp));
> CHANGE 2 : 4 @ 2 : 4
~ for (int i = 0; i < facings.length; ++i) {
~ BlockPos blockpos1 = blockpos.offsetEvenFaster(facings[i], tmp);
> CHANGE 1 : 3 @ 1 : 2
~ ++blockpos1.y;
~ this.notifyWireNeighborsOfStateChange(world, blockpos1);
> CHANGE 1 : 3 @ 1 : 2
~ --blockpos1.y;
~ this.notifyWireNeighborsOfStateChange(world, blockpos1);
> DELETE 2 @ 2 : 3
> CHANGE 6 : 10 @ 6 : 8
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ world.notifyNeighborsOfStateChange(blockpos.offsetEvenFaster(facings[i], tmp), this);
> CHANGE 4 : 7 @ 4 : 6
~ facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ this.notifyWireNeighborsOfStateChange(world, blockpos.offsetEvenFaster(facings[i], tmp));
> CHANGE 2 : 5 @ 2 : 4
~ facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ BlockPos blockpos1 = blockpos.offsetEvenFaster(facings[i], tmp);
> CHANGE 1 : 3 @ 1 : 2
~ ++blockpos1.y;
~ this.notifyWireNeighborsOfStateChange(world, blockpos1);
> CHANGE 1 : 3 @ 1 : 2
~ --blockpos1.y;
~ this.notifyWireNeighborsOfStateChange(world, blockpos1);
> DELETE 2 @ 2 : 3
> DELETE 20 @ 20 : 21
@ -53,7 +153,13 @@
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
> CHANGE 99 : 100 @ 99 : 100
> CHANGE 21 : 24 @ 21 : 22
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int j = 0; j < facings.length; ++j) {
~ EnumFacing enumfacing1 = facings[j];
> CHANGE 77 : 78 @ 77 : 78
~ public void randomDisplayTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom random) {

View File

@ -10,11 +10,40 @@
~ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
~
> CHANGE 26 : 27 @ 26 : 27
> CHANGE 26 : 29 @ 26 : 28
~ public void updateTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom var4) {
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ if (world.getBlockState(blockpos.offsetEvenFaster(EnumFacing.DOWN, tmp)).getBlock() == Blocks.reeds
> CHANGE 62 : 63 @ 62 : 63
> CHANGE 1 : 2 @ 1 : 2
~ if (world.isAirBlock(blockpos.offsetEvenFaster(EnumFacing.UP, tmp))) {
> CHANGE 1 : 3 @ 1 : 2
~ --tmp.y;
~ for (i = 1; world.getBlockState(tmp.offsetEvenFaster(EnumFacing.DOWN, tmp)).getBlock() == this; ++i) {
> CHANGE 6 : 7 @ 6 : 7
~ world.setBlockState(blockpos.offsetEvenFaster(EnumFacing.UP, tmp), this.getDefaultState());
> CHANGE 11 : 13 @ 11 : 12
~ BlockPos down = blockpos.down();
~ Block block = world.getBlockState(down).getBlock();
> CHANGE 5 : 11 @ 5 : 8
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
~ down = blockpos.offsetEvenFaster(enumfacing, down);
~ --down.y;
~ if (world.getBlockState(down).getBlock().getMaterial() == Material.water) {
> CHANGE 30 : 31 @ 30 : 31
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {

View File

@ -20,4 +20,20 @@
+ }
+
> CHANGE 5 : 8 @ 5 : 7
~ BlockSand.EnumType[] blocks = BlockSand.EnumType.META_LOOKUP;
~ for (int i = 0; i < blocks.length; ++i) {
~ list.add(new ItemStack(item, 1, blocks[i].getMetadata()));
> CHANGE 23 : 24 @ 23 : 24
~ public static final BlockSand.EnumType[] META_LOOKUP = new BlockSand.EnumType[2];
> CHANGE 41 : 44 @ 41 : 43
~ BlockSand.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -20,4 +20,20 @@
+ }
+
> CHANGE 5 : 8 @ 5 : 7
~ BlockSandStone.EnumType[] types = BlockSandStone.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 24 : 25 @ 24 : 25
~ public static final BlockSandStone.EnumType[] META_LOOKUP = new BlockSandStone.EnumType[3];
> CHANGE 35 : 38 @ 35 : 37
~ BlockSandStone.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -35,7 +35,13 @@
~ public void generateTree(World worldIn, BlockPos pos, IBlockState state, EaglercraftRandom rand) {
> CHANGE 119 : 120 @ 119 : 120
> CHANGE 109 : 112 @ 109 : 111
~ BlockPlanks.EnumType[] types = BlockPlanks.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 8 : 9 @ 8 : 9
~ public boolean canUseBonemeal(World world, EaglercraftRandom var2, BlockPos var3, IBlockState var4) {

View File

@ -22,4 +22,26 @@
~
~ public int quantityDropped(EaglercraftRandom var1) {
> CHANGE 43 : 46 @ 43 : 45
~ BlockSilverfish.EnumType[] types = BlockSilverfish.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 52 : 53 @ 52 : 53
~ public static final BlockSilverfish.EnumType[] META_LOOKUP = new BlockSilverfish.EnumType[6];
> CHANGE 41 : 44 @ 41 : 42
~ BlockSilverfish.EnumType[] types = BlockSilverfish.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ BlockSilverfish.EnumType blocksilverfish$enumtype = types[i];
> CHANGE 9 : 12 @ 9 : 11
~ BlockSilverfish.EnumType[] types = BlockSilverfish.EnumType.values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -5,10 +5,12 @@
# Version: 1.0
# Author: lax1dude
> INSERT 2 : 4 @ 2
> INSERT 2 : 6 @ 2
+ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
+
+ import java.util.List;
+
> CHANGE 1 : 2 @ 1 : 3
@ -18,4 +20,11 @@
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
> CHANGE 38 : 42 @ 38 : 41
~ List<EntityPlayer> list = worldIn.getEntitiesWithinAABB(EntityPlayer.class,
~ entitywither.getEntityBoundingBox().expand(50.0D, 50.0D, 50.0D));
~ for (int j = 0, l = list.size(); j < l; ++j) {
~ list.get(j).triggerAchievement(AchievementList.spawnWither);
> EOF

View File

@ -18,7 +18,23 @@
~ ArrayList<BlockPos> arraylist = Lists.newArrayList();
> CHANGE 49 : 50 @ 49 : 50
> INSERT 3 : 4 @ 3
+ BlockPos tmp = new BlockPos(0, 0, 0);
> CHANGE 5 : 9 @ 5 : 7
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int k = 0; k < facings.length; ++k) {
~ EnumFacing enumfacing = facings[k];
~ BlockPos blockpos1 = blockpos.offsetEvenFaster(enumfacing, tmp);
> CHANGE 15 : 17 @ 15 : 17
~ for (int j = 0, l = arraylist.size(); j < l; ++j) {
~ worldIn.notifyNeighborsOfStateChange(arraylist.get(j), Blocks.air);
> CHANGE 22 : 23 @ 22 : 23
~ public void randomDisplayTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom random) {

View File

@ -10,7 +10,13 @@
~ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
~
> CHANGE 43 : 44 @ 43 : 44
> CHANGE 29 : 32 @ 29 : 31
~ EnumDyeColor[] colors = EnumDyeColor.META_LOOKUP;
~ for (int i = 0; i < colors.length; ++i) {
~ list.add(new ItemStack(item, 1, colors[i].getMetadata()));
> CHANGE 12 : 13 @ 12 : 13
~ public int quantityDropped(EaglercraftRandom var1) {

View File

@ -9,7 +9,11 @@
~
> DELETE 61 @ 61 : 62
> CHANGE 31 : 32 @ 31 : 32
~ for (int i = 0; i < EnumDyeColor.META_LOOKUP.length; ++i) {
> DELETE 29 @ 29 : 30
> DELETE 6 @ 6 : 7

View File

@ -50,4 +50,14 @@
+ return true;
+ }
> CHANGE 37 : 39 @ 37 : 39
~ for (int l = 0; l < aint.length; ++l) {
~ amovingobjectposition[aint[l]] = null;
> CHANGE 5 : 7 @ 5 : 6
~ for (int l = 0; l < amovingobjectposition.length; ++l) {
~ MovingObjectPosition movingobjectposition = amovingobjectposition[l];
> EOF

View File

@ -14,4 +14,10 @@
~ public void updateTick(World world, BlockPos blockpos, IBlockState var3, EaglercraftRandom random) {
> CHANGE 32 : 35 @ 32 : 33
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> EOF

View File

@ -14,11 +14,25 @@
~
> CHANGE 53 : 54 @ 53 : 54
> CHANGE 39 : 44 @ 39 : 41
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
~ if (iblockaccess.getBlockState(blockpos.offsetEvenFaster(enumfacing, tmp)).getBlock() == this.crop) {
> CHANGE 12 : 13 @ 12 : 13
~ public void updateTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom random) {
> CHANGE 82 : 83 @ 82 : 83
> CHANGE 9 : 12 @ 9 : 11
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int j = 0; j < facings.length; ++j) {
~ if (world.getBlockState(blockpos.offset(facings[j])).getBlock() == this.crop) {
> CHANGE 71 : 72 @ 71 : 72
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {

View File

@ -25,4 +25,20 @@
~ public Item getItemDropped(IBlockState iblockstate, EaglercraftRandom var2, int var3) {
> CHANGE 9 : 12 @ 9 : 11
~ BlockStone.EnumType[] types = BlockStone.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 24 : 25 @ 24 : 25
~ public static final BlockStone.EnumType[] META_LOOKUP = new BlockStone.EnumType[7];
> CHANGE 45 : 48 @ 45 : 47
~ BlockStone.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -20,4 +20,20 @@
+ }
+
> CHANGE 5 : 8 @ 5 : 7
~ BlockStoneBrick.EnumType[] types = BlockStoneBrick.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 20 : 21 @ 20 : 21
~ public static final BlockStoneBrick.EnumType[] META_LOOKUP = new BlockStoneBrick.EnumType[4];
> CHANGE 35 : 38 @ 35 : 37
~ BlockStoneBrick.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -22,4 +22,20 @@
~
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
> CHANGE 21 : 24 @ 21 : 22
~ BlockStoneSlab.EnumType[] types = BlockStoneSlab.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ BlockStoneSlab.EnumType blockstoneslab$enumtype = types[i];
> CHANGE 55 : 56 @ 55 : 56
~ public static final BlockStoneSlab.EnumType[] META_LOOKUP = new BlockStoneSlab.EnumType[8];
> CHANGE 45 : 48 @ 45 : 47
~ BlockStoneSlab.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -25,4 +25,20 @@
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
> CHANGE 21 : 24 @ 21 : 23
~ BlockStoneSlabNew.EnumType[] types = BlockStoneSlabNew.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 48 : 49 @ 48 : 49
~ public static final BlockStoneSlabNew.EnumType[] META_LOOKUP = new BlockStoneSlabNew.EnumType[1];
> CHANGE 39 : 42 @ 39 : 41
~ BlockStoneSlabNew.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -37,4 +37,14 @@
~ public void grow(World world, EaglercraftRandom var2, BlockPos blockpos, IBlockState iblockstate) {
> CHANGE 30 : 31 @ 30 : 31
~ private static final BlockTallGrass.EnumType[] META_LOOKUP = new BlockTallGrass.EnumType[3];
> CHANGE 29 : 32 @ 29 : 31
~ BlockTallGrass.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMeta()] = types[i];
> EOF

View File

@ -14,7 +14,13 @@
~
> CHANGE 149 : 150 @ 149 : 150
> CHANGE 75 : 78 @ 75 : 76
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing1 = facings[i];
> CHANGE 73 : 74 @ 73 : 74
~ public void randomDisplayTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom var4) {

View File

@ -24,8 +24,13 @@
~ public void updateTick(World world, BlockPos blockpos, IBlockState var3, EaglercraftRandom var4) {
> CHANGE 16 : 17 @ 16 : 17
> CHANGE 11 : 12 @ 11 : 12
~ for (Entity entity : (List<Entity>) list) {
~ List<Entity> list = worldIn.getEntitiesWithinAABBExcludingEntity((Entity) null,
> CHANGE 4 : 6 @ 4 : 6
~ for (int i = 0, l = list.size(); i < l; ++i) {
~ if (!list.get(i).doesEntityNotTriggerPressurePlate()) {
> EOF

View File

@ -14,7 +14,14 @@
~
> CHANGE 167 : 168 @ 167 : 168
> CHANGE 55 : 59 @ 55 : 57
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ for (int i = 0; i < facings.length; ++i) {
~ if (world.getBlockState(blockpos.offsetEvenFaster(facings[i], tmp)).getBlock().isNormalCube()) {
> CHANGE 110 : 111 @ 110 : 111
~ public void randomTick(World var1, BlockPos var2, IBlockState var3, EaglercraftRandom var4) {

View File

@ -10,11 +10,62 @@
~ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
~
> CHANGE 189 : 190 @ 189 : 190
> CHANGE 146 : 150 @ 146 : 147
~ BlockPos tmp = new BlockPos(0, 0, 0);
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> CHANGE 2 : 4 @ 2 : 4
~ && !this.canPlaceOn(worldIn.getBlockState(pos.offsetEvenFaster(enumfacing, tmp)).getBlock())) {
~ IBlockState iblockstate1 = worldIn.getBlockState(pos.offsetEvenFaster(EnumFacing.UP, tmp));
> CHANGE 38 : 39 @ 38 : 39
~ public void updateTick(World world, BlockPos blockpos, IBlockState iblockstate, EaglercraftRandom random) {
> DELETE 119 @ 119 : 120
> INSERT 22 : 23 @ 22
+ BlockPos tmp = new BlockPos(0, 0, 0);
> CHANGE 4 : 9 @ 4 : 7
~ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
~ for (int j = 0; j < facings.length; ++j) {
~ EnumFacing enumfacing3 = facings[j];
~ if (random.nextBoolean() || !this.canPlaceOn(
~ world.getBlockState(blockpos2.offsetEvenFaster(enumfacing3, tmp)).getBlock())) {
> CHANGE 33 : 35 @ 33 : 35
~ } else if (flag1 && world.isAirBlock(blockpos5) && this.canPlaceOn(
~ world.getBlockState(blockpos.offsetEvenFaster(enumfacing2, tmp)).getBlock())) {
> CHANGE 2 : 4 @ 2 : 4
~ } else if (flag2 && world.isAirBlock(blockpos1) && this.canPlaceOn(
~ world.getBlockState(blockpos.offsetEvenFaster(enumfacing4, tmp)).getBlock())) {
> INSERT 16 : 17 @ 16
+ EnumFacing[] facings = EnumFacing.Plane.HORIZONTAL.facingsArray;
> CHANGE 3 : 4 @ 3 : 4
~ for (int j = 0; j < facings.length; ++j) {
> CHANGE 1 : 2 @ 1 : 2
~ iblockstate2 = iblockstate2.withProperty(getPropertyFor(facings[j]),
> CHANGE 13 : 15 @ 13 : 15
~ for (int j = 0; j < facings.length; ++j) {
~ PropertyBool propertybool = getPropertyFor(facings[j]);
> DELETE 14 @ 14 : 15
> CHANGE 15 : 16 @ 15 : 16
@ -24,4 +75,9 @@
~ public int quantityDropped(EaglercraftRandom var1) {
> CHANGE 70 : 72 @ 70 : 72
~ for (int j = 0; j < ALL_FACES.length; ++j) {
~ if (((Boolean) state.getValue(ALL_FACES[j])).booleanValue()) {
> EOF

View File

@ -20,4 +20,20 @@
+ }
+
> CHANGE 72 : 75 @ 72 : 74
~ BlockWall.EnumType[] types = BlockWall.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> CHANGE 35 : 36 @ 35 : 36
~ public static final BlockWall.EnumType[] META_LOOKUP = new BlockWall.EnumType[2];
> CHANGE 35 : 38 @ 35 : 37
~ BlockWall.EnumType[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ META_LOOKUP[types[i].getMetadata()] = types[i];
> EOF

View File

@ -25,4 +25,10 @@
~ public Item getItemDropped(IBlockState var1, EaglercraftRandom var2, int var3) {
> CHANGE 21 : 24 @ 21 : 23
~ BlockPlanks.EnumType[] types = BlockPlanks.EnumType.META_LOOKUP;
~ for (int i = 0; i < types.length; ++i) {
~ list.add(new ItemStack(item, 1, types[i].getMetadata()));
> EOF

View File

@ -14,4 +14,8 @@
~
> CHANGE 12 : 13 @ 12 : 13
~ return create(name, Collections2.filter(Lists.newArrayList(EnumFacing._VALUES), filter));
> EOF

View File

@ -13,4 +13,10 @@
+ import com.google.common.collect.Lists;
+
> CHANGE 152 : 155 @ 152 : 153
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int i = 0; i < facings.length; ++i) {
~ EnumFacing enumfacing = facings[i];
> EOF

View File

@ -23,7 +23,15 @@
~ EaglerLoadingCache loadingcache = func_181627_a(worldIn, false);
> CHANGE 19 : 21 @ 19 : 21
> CHANGE 3 : 8 @ 3 : 5
~ EnumFacing[] facings = EnumFacing._VALUES;
~ for (int j = 0; j < facings.length; ++j) {
~ EnumFacing enumfacing = facings[j];
~ for (int k = 0; k < facings.length; ++k) {
~ EnumFacing enumfacing1 = facings[k];
> CHANGE 14 : 16 @ 14 : 16
~ public static EaglerLoadingCache<BlockPos, BlockWorldState> func_181627_a(World parWorld, boolean parFlag) {
~ return new EaglerLoadingCache<BlockPos, BlockWorldState>(new BlockPattern.CacheLoader(parWorld, parFlag));

View File

@ -5,28 +5,38 @@
# Version: 1.0
# Author: lax1dude
> DELETE 2 @ 2 : 7
> INSERT 2 : 9 @ 2
> CHANGE 5 : 6 @ 5 : 8
+ import java.util.ArrayList;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Map.Entry;
+
+ import org.apache.commons.lang3.StringUtils;
+
> CHANGE 5 : 6 @ 5 : 10
~
> INSERT 2 : 10 @ 2
> DELETE 1 @ 1 : 4
+ import com.google.common.base.Joiner;
+ import com.google.common.base.Predicate;
+ import com.google.common.base.Predicates;
+ import com.google.common.collect.Lists;
+ import com.google.common.collect.Maps;
+
+ import net.minecraft.block.state.BlockWorldState;
+
> CHANGE 12 : 13 @ 12 : 13
> CHANGE 13 : 14 @ 13 : 14
~ if (!(aisle == null || aisle.length <= 0) && !StringUtils.isEmpty(aisle[0])) {
> CHANGE 18 : 19 @ 18 : 19
> CHANGE 9 : 11 @ 9 : 10
~ for (int i = 0; i < aisle.length; ++i) {
~ String s = aisle[i];
> CHANGE 6 : 9 @ 6 : 7
~ char[] achar = s.toCharArray();
~ for (int j = 0; j < achar.length; ++j) {
~ char c0 = achar[j];
> CHANGE 1 : 2 @ 1 : 2
~ this.symbolMap.put(Character.valueOf(c0), null);

View File

@ -20,7 +20,7 @@
> DELETE 1 @ 1 : 4
> CHANGE 1 : 51 @ 1 : 4
> CHANGE 1 : 52 @ 1 : 4
~
~ import net.lax1dude.eaglercraft.v1_8.internal.PlatformInput;
@ -44,6 +44,7 @@
~ import net.lax1dude.eaglercraft.v1_8.internal.PlatformRuntime;
~ import net.lax1dude.eaglercraft.v1_8.log4j.LogManager;
~ import net.lax1dude.eaglercraft.v1_8.log4j.Logger;
~ import net.lax1dude.eaglercraft.v1_8.minecraft.EaglerFolderResourcePack;
~ import net.lax1dude.eaglercraft.v1_8.minecraft.EaglerFontRenderer;
~ import net.lax1dude.eaglercraft.v1_8.opengl.EaglercraftGPU;
~ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
@ -75,7 +76,9 @@
> DELETE 2 @ 2 : 4
> DELETE 13 @ 13 : 15
> DELETE 10 @ 10 : 11
> DELETE 2 @ 2 : 4
> DELETE 3 @ 3 : 4
@ -229,8 +232,9 @@
> DELETE 1 @ 1 : 4
> CHANGE 1 : 2 @ 1 : 3
> CHANGE 1 : 3 @ 1 : 3
~ EaglerFolderResourcePack.deleteOldResourcePacks(EaglerFolderResourcePack.SERVER_RESOURCE_PACKS, 604800000L);
~ this.mcResourcePackRepository = new ResourcePackRepository(this.mcDefaultResourcePack, this.metadataSerializer_,
> DELETE 8 @ 8 : 11
@ -373,7 +377,7 @@
~ if (SingleplayerServerController.shutdownEaglercraftServer()
~ || SingleplayerServerController.getStatusState() == IntegratedServerState.WORLD_UNLOADING) {
~ displayGuiScreen(new GuiScreenIntegratedServerBusy(cont, "singleplayer.busy.stoppingIntegratedServer",
~ "singleplayer.failed.stoppingIntegratedServer", () -> SingleplayerServerController.isReady()));
~ "singleplayer.failed.stoppingIntegratedServer", SingleplayerServerController::isReady));
~ } else {
~ displayGuiScreen(cont);
~ }
@ -613,7 +617,7 @@
+ this.eagskullCommand.tick();
> INSERT 43 : 88 @ 43
> INSERT 43 : 87 @ 43
+ if (this.theWorld != null) {
+ ++joinWorldTickCounter;
@ -654,8 +658,7 @@
+ if (SingleplayerServerController.hangupEaglercraftServer()) {
+ this.displayGuiScreen(new GuiScreenIntegratedServerBusy(currentScreen,
+ "singleplayer.busy.stoppingIntegratedServer",
+ "singleplayer.failed.stoppingIntegratedServer",
+ () -> SingleplayerServerController.isReady()));
+ "singleplayer.failed.stoppingIntegratedServer", SingleplayerServerController::isReady));
+ }
+ }
+ }

View File

@ -16,4 +16,15 @@
~ MOBS("hostile", 5), ANIMALS("neutral", 6), PLAYERS("player", 7), AMBIENT("ambient", 8), VOICE("voice", 9);
> INSERT 1 : 3 @ 1
+ public static final SoundCategory[] _VALUES = values();
+
> CHANGE 23 : 26 @ 23 : 24
~ SoundCategory[] categories = _VALUES;
~ for (int i = 0; i < categories.length; ++i) {
~ SoundCategory soundcategory = categories[i];
> EOF

View File

@ -18,4 +18,14 @@
~ private final EaglercraftRandom rnd = new EaglercraftRandom();
> CHANGE 16 : 18 @ 16 : 18
~ for (int j = 0, l = this.soundPool.size(); j < l; ++j) {
~ i += this.soundPool.get(j).getWeight();
> CHANGE 10 : 12 @ 10 : 11
~ for (int k = 0, l = this.soundPool.size(); k < l; ++k) {
~ ISoundEventAccessor isoundeventaccessor = this.soundPool.get(k);
> EOF

View File

@ -14,4 +14,11 @@
+ import com.google.common.collect.Lists;
+
> CHANGE 91 : 95 @ 91 : 94
~ SoundList.SoundEntry.Type[] types = values();
~ for (int i = 0; i < types.length; ++i) {
~ if (types[i].field_148583_c.equals(parString1)) {
~ return types[i];
> EOF

View File

@ -5,11 +5,9 @@
# Version: 1.0
# Author: lax1dude
> INSERT 2 : 6 @ 2
> INSERT 2 : 4 @ 2
+ import net.lax1dude.eaglercraft.v1_8.sp.SingleplayerServerController;
+ import net.lax1dude.eaglercraft.v1_8.sp.lan.LANClientNetworkManager;
+ import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerController;
+ import net.lax1dude.eaglercraft.v1_8.sp.socket.ClientIntegratedServerNetworkManager;
> DELETE 3 @ 3 : 4

View File

@ -159,7 +159,13 @@
+ textColor |= -16777216;
+ }
> CHANGE 30 : 31 @ 30 : 31
> CHANGE 6 : 9 @ 6 : 8
~ List<String> lst = this.listFormattedStringToWidth(str, wrapWidth);
~ for (int i = 0, l = lst.size(); i < l; ++i) {
~ this.renderStringAligned(lst.get(i), x, y, wrapWidth, this.textColor, addShadow);
> CHANGE 22 : 23 @ 22 : 23
~ return Arrays.asList(this.wrapFormattedStringToWidth(str, wrapWidth, 0).split("\n"));

View File

@ -88,7 +88,20 @@
+ }
+
> INSERT 85 : 86 @ 85
> CHANGE 32 : 34 @ 32 : 33
~ int l = this.foundPlayerNames.size();
~ if (l > 1) {
> CHANGE 2 : 3 @ 2 : 3
~ for (int i = 0; i < l; ++i) {
> CHANGE 4 : 5 @ 4 : 5
~ stringbuilder.append(this.foundPlayerNames.get(i));
> INSERT 44 : 45 @ 44
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
@ -99,4 +112,9 @@
+ }
+
> CHANGE 8 : 10 @ 8 : 9
~ for (int i = 0; i < parArrayOfString.length; ++i) {
~ String s = parArrayOfString[i];
> EOF

View File

@ -15,7 +15,13 @@
~ protected void actionPerformed(GuiButton parGuiButton) {
> CHANGE 16 : 17 @ 16 : 17
> CHANGE 3 : 6 @ 3 : 5
~ KeyBinding[] arr = this.mc.gameSettings.keyBindings;
~ for (int i = 0; i < arr.length; ++i) {
~ arr[i].setKeyCode(arr[i].getKeyCodeDefault());
> CHANGE 11 : 12 @ 11 : 12
~ protected void mouseClicked(int parInt1, int parInt2, int parInt3) {
@ -23,4 +29,10 @@
~ protected void keyTyped(char parChar1, int parInt1) {
> CHANGE 24 : 27 @ 24 : 26
~ KeyBinding[] arr = this.options.keyBindings;
~ for (int k = 0; k < arr.length; ++k) {
~ if (arr[k].getKeyCode() != arr[k].getKeyCodeDefault()) {
> EOF

View File

@ -11,7 +11,7 @@
+ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
+ import net.lax1dude.eaglercraft.v1_8.opengl.WorldRenderer;
> DELETE 8 @ 8 : 9
> DELETE 2 @ 2 : 9
> DELETE 2 @ 2 : 3

View File

@ -5,14 +5,26 @@
# Version: 1.0
# Author: lax1dude
> INSERT 4 : 6 @ 4
> DELETE 2 @ 2 : 3
+
+ import net.lax1dude.eaglercraft.v1_8.Keyboard;
> CHANGE 1 : 3 @ 1 : 6
> DELETE 12 @ 12 : 13
~
~ import net.lax1dude.eaglercraft.v1_8.Keyboard;
> CHANGE 149 : 150 @ 149 : 150
> DELETE 7 @ 7 : 8
> CHANGE 82 : 84 @ 82 : 84
~ for (int i = 0; i < ChatAllowedCharacters.allowedCharactersArray.length; ++i) {
~ this.field_146336_i = this.field_146336_i.replace(ChatAllowedCharacters.allowedCharactersArray[i], '_');
> CHANGE 48 : 50 @ 48 : 50
~ for (int i = 0; i < disallowedFilenames.length; ++i) {
~ if (parString1.equalsIgnoreCase(disallowedFilenames[i])) {
> CHANGE 15 : 16 @ 15 : 16
~ protected void actionPerformed(GuiButton parGuiButton) {

View File

@ -7,7 +7,13 @@
> DELETE 2 @ 2 : 5
> CHANGE 30 : 31 @ 30 : 31
> CHANGE 15 : 18 @ 15 : 16
~ EnumPlayerModelParts[] parts = EnumPlayerModelParts._VALUES;
~ for (int k = 0; k < parts.length; ++k) {
~ EnumPlayerModelParts enumplayermodelparts = parts[k];
> CHANGE 14 : 15 @ 14 : 15
~ protected void actionPerformed(GuiButton parGuiButton) {

View File

@ -5,14 +5,12 @@
# Version: 1.0
# Author: lax1dude
> INSERT 6 : 10 @ 6
> CHANGE 6 : 10 @ 6 : 16
+
+ import net.lax1dude.eaglercraft.v1_8.HString;
+ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
+ import net.lax1dude.eaglercraft.v1_8.opengl.WorldRenderer;
> DELETE 9 @ 9 : 10
~
~ import net.lax1dude.eaglercraft.v1_8.HString;
~ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
~ import net.lax1dude.eaglercraft.v1_8.opengl.WorldRenderer;
> DELETE 1 @ 1 : 2

View File

@ -26,7 +26,13 @@
~ protected void actionPerformed(GuiButton parGuiButton) {
> INSERT 20 : 32 @ 20
> CHANGE 12 : 15 @ 12 : 14
~ for (int l = 0, m = this.multilineMessage.size(); l < m; ++l) {
~ this.drawCenteredString(this.fontRendererObj, this.multilineMessage.get(l), this.width / 2, k,
~ 16777215);
> INSERT 6 : 18 @ 6
+
+ public void updateScreen() {

View File

@ -12,7 +12,7 @@
+ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
+ import net.lax1dude.eaglercraft.v1_8.opengl.WorldRenderer;
> DELETE 7 @ 7 : 8
> DELETE 1 @ 1 : 8
> DELETE 2 @ 2 : 3
@ -30,4 +30,9 @@
~ protected void actionPerformed(GuiButton parGuiButton) {
> CHANGE 55 : 57 @ 55 : 57
~ for (int i = 0, l = parList.size(); i < l; ++i) {
~ flatgeneratorinfo.getWorldFeatures().put(parList.get(i), Maps.newHashMap());
> EOF

View File

@ -11,7 +11,12 @@
> DELETE 1 @ 1 : 2
> CHANGE 33 : 34 @ 33 : 34
> CHANGE 27 : 29 @ 27 : 29
~ for (int i = 0, l = this.buttonList.size(); i < l; ++i) {
~ this.buttonList.get(i).enabled = false;
> CHANGE 4 : 5 @ 4 : 5
~ protected void keyTyped(char parChar1, int parInt1) {
@ -34,4 +39,9 @@
~ this.mc.shutdownIntegratedServer(new GuiMainMenu());
> CHANGE 34 : 36 @ 34 : 36
~ for (int i = 0, l = this.buttonList.size(); i < l; ++i) {
~ this.buttonList.get(i).enabled = true;
> EOF

View File

@ -5,11 +5,10 @@
# Version: 1.0
# Author: lax1dude
> INSERT 2 : 8 @ 2
> INSERT 2 : 7 @ 2
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.List;
+ import net.lax1dude.eaglercraft.v1_8.EaglercraftRandom;
+ import net.lax1dude.eaglercraft.v1_8.minecraft.EaglerTextureAtlasSprite;
+
@ -77,13 +76,15 @@
> DELETE 147 @ 147 : 151
> CHANGE 17 : 18 @ 17 : 18
> CHANGE 17 : 19 @ 17 : 18
~ for (Score score : (List<Score>) arraylist1) {
~ for (int m = 0, n = arraylist1.size(); m < n; ++m) {
~ Score score = (Score) arraylist1.get(m);
> CHANGE 12 : 13 @ 12 : 13
> CHANGE 12 : 14 @ 12 : 13
~ for (Score score1 : (List<Score>) arraylist1) {
~ for (int m = 0, n = arraylist1.size(); m < n; ++m) {
~ Score score1 = (Score) arraylist1.get(m);
> CHANGE 7 : 9 @ 7 : 9

View File

@ -14,4 +14,15 @@
> DELETE 4 @ 4 : 5
> CHANGE 17 : 19 @ 17 : 18
~ for (int l = 0; l < akeybinding.length; ++l) {
~ KeyBinding keybinding = akeybinding[l];
> CHANGE 86 : 89 @ 86 : 87
~ KeyBinding[] kb = GuiKeyBindingList.this.mc.gameSettings.keyBindings;
~ for (int m = 0; m < kb.length; ++m) {
~ KeyBinding keybindingx = kb[m];
> EOF

View File

@ -51,7 +51,9 @@
> DELETE 3 @ 3 : 5
> DELETE 4 @ 4 : 11
> DELETE 2 @ 2 : 3
> DELETE 1 @ 1 : 8
> DELETE 2 @ 2 : 3
@ -247,7 +249,7 @@
~ isaveformat.deleteWorldDirectory("Demo World");
~ this.mc.displayGuiScreen(new GuiScreenIntegratedServerBusy(this, "singleplayer.busy.deleting",
~ "singleplayer.failed.deleting", () -> SingleplayerServerController.isReady()));
~ "singleplayer.failed.deleting", SingleplayerServerController::isReady));
~ } else {
> DELETE 1 @ 1 : 14

View File

@ -145,7 +145,14 @@
~ this.refreshServerList();
~ }
> DELETE 1 @ 1 : 2
> INSERT 1 : 2 @ 1
+ }
> INSERT 1 : 3 @ 1
+ public void cancelDirectConnect() {
+ this.directConnect = false;
> CHANGE 2 : 3 @ 2 : 3
@ -159,10 +166,13 @@
> DELETE 2 @ 2 : 11
> INSERT 25 : 28 @ 25
> INSERT 22 : 24 @ 22
+ relaysButton.drawScreen(i, j);
+ drawPluginDownloadLink(i, j);
> INSERT 3 : 4 @ 3
+ }
> INSERT 1 : 17 @ 1

View File

@ -22,6 +22,10 @@
> CHANGE 108 : 109 @ 108 : 109
~ for (IChatComponent ichatcomponent : (List<IChatComponent>) list) {
~ for (int j = 0, l = list.size(); j < l; ++j) {
> CHANGE 5 : 6 @ 5 : 6
~ this.field_146253_i.add(0, new ChatLine(parInt2, (IChatComponent) list.get(j), parInt1));
> EOF

View File

@ -5,23 +5,39 @@
# Version: 1.0
# Author: lax1dude
> CHANGE 2 : 9 @ 2 : 24
> CHANGE 2 : 13 @ 2 : 3
~ import net.lax1dude.eaglercraft.v1_8.EagRuntime;
~ import net.lax1dude.eaglercraft.v1_8.Mouse;
~ import net.lax1dude.eaglercraft.v1_8.internal.EnumCursorType;
~ import net.lax1dude.eaglercraft.v1_8.internal.EnumPlatformType;
~ import net.lax1dude.eaglercraft.v1_8.minecraft.EaglerFolderResourcePack;
~ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
~ import net.lax1dude.eaglercraft.v1_8.opengl.ext.deferred.EaglerDeferredPipeline;
~ import net.lax1dude.eaglercraft.v1_8.opengl.ext.deferred.gui.GuiShaderConfig;
~ import net.lax1dude.eaglercraft.v1_8.opengl.ext.deferred.gui.GuiShadersNotSupported;
~ import net.lax1dude.eaglercraft.v1_8.profile.GuiScreenImportExportProfile;
~ import net.lax1dude.eaglercraft.v1_8.sp.SingleplayerServerController;
~ import net.lax1dude.eaglercraft.v1_8.vfs.SYS;
> DELETE 1 @ 1 : 21
> DELETE 2 @ 2 : 3
> INSERT 12 : 13 @ 12
> INSERT 2 : 4 @ 2
+ import net.minecraft.util.EnumChatFormatting;
+ import net.minecraft.util.ResourceLocation;
> INSERT 10 : 11 @ 10
+ private GuiButton broadcastSettings;
> CHANGE 47 : 48 @ 47 : 59
> CHANGE 10 : 12 @ 10 : 11
~ for (int j = 0; j < field_146440_f.length; ++j) {
~ GameSettings.Options gamesettings$options = field_146440_f[j];
> CHANGE 36 : 37 @ 36 : 48
~ I18n.format("shaders.gui.optionsButton")));
@ -33,22 +49,17 @@
> CHANGE 8 : 10 @ 8 : 9
~ GuiButton rp;
~ this.buttonList.add(rp = new GuiButton(105, this.width / 2 - 155, this.height / 6 + 144 - 6, 150, 20,
~ GuiButton btn;
~ this.buttonList.add(btn = new GuiButton(105, this.width / 2 - 155, this.height / 6 + 144 - 6, 150, 20,
> CHANGE 1 : 5 @ 1 : 3
~ GuiButton dbg;
~ this.buttonList.add(dbg = new GuiButton(104, this.width / 2 + 5, this.height / 6 + 144 - 6, 150, 20,
~ btn.enabled = EaglerFolderResourcePack.isSupported();
~ this.buttonList.add(btn = new GuiButton(104, this.width / 2 + 5, this.height / 6 + 144 - 6, 150, 20,
~ I18n.format("options.debugConsoleButton", new Object[0])));
~ dbg.enabled = EagRuntime.getPlatformType() != EnumPlatformType.DESKTOP;
~ btn.enabled = EagRuntime.getPlatformType() != EnumPlatformType.DESKTOP;
> INSERT 2 : 4 @ 2
+
+ rp.enabled = SYS.VFS != null;
> CHANGE 22 : 23 @ 22 : 23
> CHANGE 24 : 25 @ 24 : 25
~ protected void actionPerformed(GuiButton parGuiButton) {
@ -79,4 +90,40 @@
+ EagRuntime.showDebugConsole();
+ }
> INSERT 6 : 24 @ 6
+
+ if (mc.theWorld == null && !EagRuntime.getConfiguration().isDemo()) {
+ GlStateManager.pushMatrix();
+ GlStateManager.scale(0.75f, 0.75f, 0.75f);
+ GlStateManager.color(1.0f, 1.0f, 1.0f, 1.0f);
+ String text = I18n.format("editProfile.importExport");
+
+ int w = mc.fontRendererObj.getStringWidth(text);
+ boolean hover = i > 1 && j > 1 && i < (w * 3 / 4) + 7 && j < 12;
+ if (hover) {
+ Mouse.showCursor(EnumCursorType.HAND);
+ }
+
+ drawString(mc.fontRendererObj, EnumChatFormatting.UNDERLINE + text, 5, 5, hover ? 0xFFEEEE22 : 0xFFCCCCCC);
+
+ GlStateManager.popMatrix();
+ }
+
> INSERT 2 : 14 @ 2
+
+ protected void mouseClicked(int mx, int my, int button) {
+ super.mouseClicked(mx, my, button);
+ if (mc.theWorld == null && !EagRuntime.getConfiguration().isDemo()) {
+ int w = mc.fontRendererObj.getStringWidth(I18n.format("editProfile.importExport"));
+ if (mx > 1 && my > 1 && mx < (w * 3 / 4) + 7 && my < 12) {
+ mc.displayGuiScreen(new GuiScreenImportExportProfile(this));
+ mc.getSoundHandler()
+ .playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F));
+ }
+ }
+ }
> EOF

View File

@ -18,7 +18,7 @@
+ import java.util.Locale;
> INSERT 1 : 14 @ 1
> INSERT 1 : 13 @ 1
+ import java.util.TimeZone;
+
@ -31,18 +31,14 @@
+ import net.lax1dude.eaglercraft.v1_8.internal.EnumPlatformType;
+ import net.lax1dude.eaglercraft.v1_8.opengl.EaglercraftGPU;
+ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
+ import net.lax1dude.eaglercraft.v1_8.opengl.OpenGlHelper;
+ import net.lax1dude.eaglercraft.v1_8.sp.SingleplayerServerController;
> CHANGE 5 : 8 @ 5 : 10
> CHANGE 5 : 6 @ 5 : 10
~ import net.minecraft.client.renderer.RenderHelper;
~ import net.minecraft.client.renderer.entity.RenderManager;
~ import net.minecraft.client.resources.I18n;
> CHANGE 1 : 3 @ 1 : 2
> CHANGE 1 : 2 @ 1 : 2
~ import net.minecraft.entity.EntityLivingBase;
~ import net.minecraft.potion.PotionEffect;
> CHANGE 8 : 9 @ 8 : 9
@ -254,7 +250,7 @@
+ }
+
> INSERT 4 : 36 @ 4
> INSERT 4 : 37 @ 4
+ private int drawSingleplayerStats(ScaledResolution parScaledResolution) {
+ if (mc.isDemo()) {
@ -268,7 +264,8 @@
+ List<String> strs = SingleplayerServerController.getTPS();
+ int l;
+ boolean first = true;
+ for (String str : strs) {
+ for (int j = 0, m = strs.size(); j < m; ++j) {
+ String str = strs.get(j);
+ l = (int) (this.fontRenderer.getStringWidth(str) * (!first ? 0.5f : 1.0f));
+ GlStateManager.pushMatrix();
+ GlStateManager.translate(parScaledResolution.getScaledWidth() - 2 - l, i + 2, 0.0f);

View File

@ -16,4 +16,34 @@
> DELETE 1 @ 1 : 9
> CHANGE 22 : 24 @ 22 : 23
~ for (int n = 0; n < this.field_178078_x.length; ++n) {
~ GuiPageButtonList.GuiListEntry[] aguipagebuttonlist$guilistentry = this.field_178078_x[n];
> CHANGE 86 : 91 @ 86 : 90
~
~ GuiListEntry[] etr = this.field_178078_x[parInt1];
~ for (int i = 0; i < etr.length; ++i) {
~ if (etr[i] != null) {
~ this.func_178066_a((Gui) this.field_178073_v.lookup(etr[i].func_178935_b()), false);
> CHANGE 3 : 7 @ 3 : 7
~ etr = this.field_178078_x[parInt2];
~ for (int i = 0; i < etr.length; ++i) {
~ if (etr[i] != null) {
~ this.func_178066_a((Gui) this.field_178073_v.lookup(etr[i].func_178935_b()), true);
> CHANGE 33 : 35 @ 33 : 34
~ for (int i = 0, l = this.field_178074_u.size(); i < l; ++i) {
~ GuiPageButtonList.GuiEntry guipagebuttonlist$guientry = this.field_178074_u.get(i);
> CHANGE 108 : 110 @ 108 : 110
~ for (int k = 0; k < astring.length; ++k) {
~ ((GuiTextField) this.field_178072_w.get(j)).setText(astring[k]);
> EOF

View File

@ -20,32 +20,42 @@
> DELETE 2 @ 2 : 3
> CHANGE 46 : 47 @ 46 : 47
> CHANGE 46 : 48 @ 46 : 47
~ for (NetworkPlayerInfo networkplayerinfo : (List<NetworkPlayerInfo>) list) {
~ for (int m = 0, n = list.size(); m < n; ++m) {
~ NetworkPlayerInfo networkplayerinfo = (NetworkPlayerInfo) list.get(m);
> CHANGE 20 : 21 @ 20 : 22
~ boolean flag = true;
> CHANGE 20 : 21 @ 20 : 21
> CHANGE 15 : 17 @ 15 : 17
~ for (String s : (List<String>) list1) {
~ List<String> list1 = null;
~ List<String> list2 = null;
> CHANGE 7 : 8 @ 7 : 8
> CHANGE 3 : 5 @ 3 : 5
~ for (String s2 : (List<String>) list2) {
~ for (int m = 0, n = list1.size(); m < n; ++m) {
~ l1 = Math.max(l1, this.mc.fontRendererObj.getStringWidth(list1.get(m)));
> CHANGE 8 : 9 @ 8 : 9
> CHANGE 6 : 8 @ 6 : 8
~ for (String s3 : (List<String>) list1) {
~ for (int m = 0, n = list2.size(); m < n; ++m) {
~ l1 = Math.max(l1, this.mc.fontRendererObj.getStringWidth(list2.get(m)));
> CHANGE 7 : 9 @ 7 : 8
~ for (int m = 0, n = list1.size(); m < n; ++m) {
~ String s3 = list1.get(m);
> CHANGE 32 : 33 @ 32 : 33
~ if (entityplayer == null || entityplayer.isWearing(EnumPlayerModelParts.HAT)) {
> CHANGE 33 : 34 @ 33 : 34
> CHANGE 33 : 35 @ 33 : 34
~ for (String s4 : (List<String>) list2) {
~ for (int m = 0, n = list2.size(); m < n; ++m) {
~ String s4 = list2.get(m);
> EOF

View File

@ -5,14 +5,13 @@
# Version: 1.0
# Author: lax1dude
> INSERT 3 : 7 @ 3
> CHANGE 2 : 5 @ 2 : 6
+
+ import net.lax1dude.eaglercraft.v1_8.Keyboard;
+ import net.lax1dude.eaglercraft.v1_8.sp.SingleplayerServerController;
+ import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiScreenIntegratedServerBusy;
~ import net.lax1dude.eaglercraft.v1_8.Keyboard;
~ import net.lax1dude.eaglercraft.v1_8.sp.SingleplayerServerController;
~ import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiScreenIntegratedServerBusy;
> DELETE 6 @ 6 : 7
> DELETE 3 @ 3 : 4
> INSERT 5 : 6 @ 5
@ -51,13 +50,13 @@
~ SingleplayerServerController.duplicateWorld(this.saveName, this.field_146583_f.getText().trim());
~ this.mc.displayGuiScreen(
~ new GuiScreenIntegratedServerBusy(this.parentScreen, "singleplayer.busy.duplicating",
~ "singleplayer.failed.duplicating", () -> SingleplayerServerController.isReady()));
~ "singleplayer.failed.duplicating", SingleplayerServerController::isReady));
~ } else {
~ ISaveFormat isaveformat = this.mc.getSaveLoader();
~ isaveformat.renameWorld(this.saveName, this.field_146583_f.getText().trim());
~ this.mc.displayGuiScreen(
~ new GuiScreenIntegratedServerBusy(this.parentScreen, "singleplayer.busy.renaming",
~ "singleplayer.failed.renaming", () -> SingleplayerServerController.isReady()));
~ "singleplayer.failed.renaming", SingleplayerServerController::isReady));
~ }
> DELETE 1 @ 1 : 2

View File

@ -45,7 +45,15 @@
~ private String clickedLinkURI;
~ protected long showingCloseKey = 0;
> INSERT 10 : 40 @ 10
> CHANGE 2 : 3 @ 2 : 3
~ for (int k = 0, l = this.buttonList.size(); k < l; ++k) {
> CHANGE 3 : 4 @ 3 : 4
~ for (int l = 0, m = this.labelList.size(); l < m; ++l) {
> INSERT 3 : 33 @ 3
+ long millis = System.currentTimeMillis();
+ long closeKeyTimeout = millis - showingCloseKey;
@ -108,7 +116,16 @@
~ EagRuntime.setClipboard(copyText);
> CHANGE 68 : 71 @ 68 : 69
> CHANGE 6 : 7 @ 6 : 7
~ for (int k = 0, l = list.size(); k < l; ++k) {
> CHANGE 22 : 24 @ 22 : 24
~ for (int m = 0, n = list.size(); m < n; ++m) {
~ int l = this.fontRendererObj.getStringWidth(list.get(m));
> CHANGE 37 : 40 @ 37 : 38
~ if (s1.length() > 0) {
~ this.fontRendererObj.drawStringWithShadow(s1, (float) j2, (float) k2, -1);

View File

@ -62,7 +62,12 @@
~ + I18n.format(this.serverData.hideAddress ? "gui.yes" : "gui.no", new Object[0]);
~ } else if (parGuiButton.id == 2) {
> CHANGE 8 : 10 @ 8 : 10
> CHANGE 1 : 3 @ 1 : 3
~ ServerData.ServerResourceMode._VALUES[(this.serverData.getResourceMode().ordinal() + 1)
~ % ServerData.ServerResourceMode._VALUES.length]);
> CHANGE 5 : 7 @ 5 : 7
~ this.serverData.serverName = this.serverNameField.getText().trim();
~ this.serverData.serverIP = this.serverIPField.getText().trim();

View File

@ -5,14 +5,12 @@
# Version: 1.0
# Author: lax1dude
> INSERT 5 : 9 @ 5
> CHANGE 5 : 9 @ 5 : 11
+
+ import net.lax1dude.eaglercraft.v1_8.Keyboard;
+ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
+ import net.lax1dude.eaglercraft.v1_8.opengl.WorldRenderer;
> DELETE 5 @ 5 : 6
~
~ import net.lax1dude.eaglercraft.v1_8.Keyboard;
~ import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
~ import net.lax1dude.eaglercraft.v1_8.opengl.WorldRenderer;
> DELETE 1 @ 1 : 2

View File

@ -11,7 +11,13 @@
> DELETE 4 @ 4 : 7
> CHANGE 37 : 38 @ 37 : 38
> CHANGE 24 : 27 @ 24 : 25
~ SoundCategory[] cats = SoundCategory._VALUES;
~ for (int j = 0; j < cats.length; ++j) {
~ SoundCategory soundcategory = cats[j];
> CHANGE 12 : 13 @ 12 : 13
~ protected void actionPerformed(GuiButton parGuiButton) {

View File

@ -5,51 +5,62 @@
# Version: 1.0
# Author: lax1dude
> CHANGE 2 : 3 @ 2 : 4
~ import java.io.ByteArrayInputStream;
> DELETE 2 @ 2 : 4
> DELETE 1 @ 1 : 2
> CHANGE 3 : 11 @ 3 : 8
> CHANGE 3 : 12 @ 3 : 8
~
~ import com.google.common.collect.Lists;
~
~ import net.lax1dude.eaglercraft.v1_8.EagRuntime;
~ import net.lax1dude.eaglercraft.v1_8.vfs.SYS;
~ import net.lax1dude.eaglercraft.v1_8.internal.FileChooserResult;
~ import net.lax1dude.eaglercraft.v1_8.log4j.LogManager;
~ import net.lax1dude.eaglercraft.v1_8.log4j.Logger;
~ import net.lax1dude.eaglercraft.v1_8.minecraft.EaglerFolderResourcePack;
~ import net.lax1dude.eaglercraft.v1_8.minecraft.GuiScreenGenericErrorMessage;
> DELETE 5 @ 5 : 9
> CHANGE 15 : 17 @ 15 : 16
> CHANGE 24 : 25 @ 24 : 25
~ GuiButton btn;
~ this.buttonList.add(btn = new GuiOptionButton(2, this.width / 2 - 154, this.height - 48,
~ List arraylist = Lists.newArrayList(resourcepackrepository.getRepositoryEntriesAll());
> INSERT 1 : 2 @ 1
> CHANGE 2 : 5 @ 2 : 4
+ btn.enabled = SYS.VFS != null;
~ for (int i = 0, l = arraylist.size(); i < l; ++i) {
~ this.availableResourcePacks
~ .add(new ResourcePackListEntryFound(this, (ResourcePackRepository.Entry) arraylist.get(i)));
> CHANGE 10 : 11 @ 10 : 11
> CHANGE 2 : 6 @ 2 : 5
~ for (ResourcePackRepository.Entry resourcepackrepository$entry : (List<ResourcePackRepository.Entry>) arraylist) {
~ arraylist = Lists.reverse(resourcepackrepository.getRepositoryEntries());
~ for (int i = 0, l = arraylist.size(); i < l; ++i) {
~ this.selectedResourcePacks
~ .add(new ResourcePackListEntryFound(this, (ResourcePackRepository.Entry) arraylist.get(i)));
> CHANGE 44 : 45 @ 44 : 45
> CHANGE 38 : 39 @ 38 : 39
~ protected void actionPerformed(GuiButton parGuiButton) {
> CHANGE 2 : 5 @ 2 : 39
> CHANGE 2 : 3 @ 2 : 39
~ if (SYS.VFS == null)
~ return;
~ EagRuntime.displayFileChooser("application/zip", "zip");
> CHANGE 15 : 16 @ 15 : 16
> CHANGE 2 : 3 @ 2 : 3
~ for (ResourcePackRepository.Entry resourcepackrepository$entry : (List<ResourcePackRepository.Entry>) arraylist) {
~ ArrayList<ResourcePackRepository.Entry> arraylist = Lists.newArrayList();
> CHANGE 1 : 3 @ 1 : 2
~ for (int i = 0, l = this.selectedResourcePacks.size(); i < l; ++i) {
~ ResourcePackListEntry resourcepacklistentry = this.selectedResourcePacks.get(i);
> CHANGE 10 : 12 @ 10 : 11
~ for (int i = 0, l = arraylist.size(); i < l; ++i) {
~ ResourcePackRepository.Entry resourcepackrepository$entry = arraylist.get(i);
> INSERT 6 : 8 @ 6
@ -58,22 +69,32 @@
> DELETE 3 @ 3 : 4
> CHANGE 6 : 46 @ 6 : 7
> CHANGE 6 : 57 @ 6 : 7
~ public void updateScreen() {
~ FileChooserResult packFile = null;
~ if (EagRuntime.fileChooserHasResult()) {
~ packFile = EagRuntime.getFileChooserResult();
~ }
~ if (packFile == null)
~ if (packFile == null) {
~ return;
~ logger.info("Loading resource pack: {}", packFile.fileName);
~ }
~ mc.loadingScreen.eaglerShow(I18n.format("resourcePack.load.loading"), packFile.fileName);
~ SYS.loadResourcePack(packFile.fileName, new ByteArrayInputStream(packFile.fileData), null);
~ try {
~ EaglerFolderResourcePack.importResourcePack(packFile.fileName, EaglerFolderResourcePack.RESOURCE_PACKS,
~ packFile.fileData);
~ } catch (IOException e) {
~ logger.error("Could not load resource pack: {}", packFile.fileName);
~ logger.error(e);
~ mc.displayGuiScreen(new GuiScreenGenericErrorMessage("resourcePack.importFailed.1",
~ "resourcePack.importFailed.2", parentScreen));
~ return;
~ }
~
~ ArrayList arraylist = Lists.newArrayList();
~ ArrayList<ResourcePackRepository.Entry> arraylist = Lists.newArrayList();
~
~ for (ResourcePackListEntry resourcepacklistentry : this.selectedResourcePacks) {
~ for (int i = 0, l = this.selectedResourcePacks.size(); i < l; ++i) {
~ ResourcePackListEntry resourcepacklistentry = this.selectedResourcePacks.get(i);
~ if (resourcepacklistentry instanceof ResourcePackListEntryFound) {
~ arraylist.add(((ResourcePackListEntryFound) resourcepacklistentry).func_148318_i());
~ }
@ -84,7 +105,8 @@
~ this.mc.gameSettings.resourcePacks.clear();
~ this.mc.gameSettings.field_183018_l.clear();
~
~ for (ResourcePackRepository.Entry resourcepackrepository$entry : (List<ResourcePackRepository.Entry>) arraylist) {
~ for (int i = 0, l = arraylist.size(); i < l; ++i) {
~ ResourcePackRepository.Entry resourcepackrepository$entry = arraylist.get(i);
~ this.mc.gameSettings.resourcePacks.add(resourcepackrepository$entry.getResourcePackName());
~ if (resourcepackrepository$entry.func_183027_f() != 1) {
~ this.mc.gameSettings.field_183018_l.add(resourcepackrepository$entry.getResourcePackName());

View File

@ -17,11 +17,11 @@
~ import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiScreenLANNotSupported;
~ import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerController;
> INSERT 1 : 2 @ 1
> CHANGE 1 : 2 @ 1 : 9
+ import net.minecraft.client.audio.PositionedSoundRecord;
~ import net.minecraft.client.audio.PositionedSoundRecord;
> INSERT 10 : 11 @ 10
> INSERT 2 : 3 @ 2
+ import net.minecraft.util.ResourceLocation;
@ -63,7 +63,7 @@
+ waitingForWorlds = true;
+ this.mc.getSaveLoader().flushCache();
+ this.mc.displayGuiScreen(new GuiScreenIntegratedServerBusy(this, "singleplayer.busy.listingworlds",
+ "singleplayer.failed.listingworlds", () -> SingleplayerServerController.isReady(), (t, u) -> {
+ "singleplayer.failed.listingworlds", SingleplayerServerController::isReady, (t, u) -> {
+ GuiScreenIntegratedServerBusy tt = (GuiScreenIntegratedServerBusy) t;
+ Minecraft.getMinecraft().displayGuiScreen(
+ GuiScreenIntegratedServerBusy.createException(parentScreen, tt.failMessage, u));
@ -112,7 +112,7 @@
> CHANGE 1 : 5 @ 1 : 7
~ this.mc.displayGuiScreen(new GuiScreenIntegratedServerBusy(this, "singleplayer.busy.deleting",
~ "singleplayer.failed.deleting", () -> SingleplayerServerController.isReady()));
~ "singleplayer.failed.deleting", SingleplayerServerController::isReady));
~ } else {
~ this.mc.displayGuiScreen(this);

Some files were not shown because too many files have changed in this diff Show More