01:21 < PierreC> I have sent that packet, is there anything else? 03:49 < PierreC> I have one more question related to chunk unloading 03:50 < PierreC> when I open the F3 menu, it seems to be working fine, then 2-3 minutes later, the second value becomes larger, and they continue to resize at the same rate 03:56 < PierreC> http://imgur.com/GUqYsv4 03:56 < PierreC> is it bad that the values in MultiplayerChunkCache are not the same? 07:18 < kwadhera> Hey! Anyone here familar with forge & packet handling/interception(Non-custom) 20:14 < morfin> anything can ride chicken? 20:14 < morfin> even wither? --- Day changed mar. juin 23 2015 18:49 < Aikar> Grum, Dinnerbone small ineffeciency I see: PlayerList method that does the kicking of old session ("You logged in from another location") is still iterating all online players instead of simply getPlayer(UUID). also would be nice if vanilla itself stored a Map so that the method in PlayerList that looks up by name doesnt iterate/string compare just to find the player. 18:49 <+Grum> String of what? 18:50 < Aikar> their name 18:50 < Aikar> PlayerList.getPlayer(String name) iterates all online players comparing the name 18:50 < Aikar> (going by CB naming of course) 18:50 < Aikar> and the disconnect old section is also iterating to compare a uuid when your already storing a uuid map 18:51 < Aikar> so could just look up by uuid to find old session 18:53 < Aikar> for ref: https://gist.github.com/aikar/0f7e9e67e72a3b006a81 19:40 <+Grum> Aikar: that is a bit wtf, we have the mapping by uuid there 19:40 < Aikar> thats my point 19:40 < Aikar> you have the map but that section of code isnt using it 19:42 <+Grum> there is a lot of really bad code in that thing 19:44 <+Grum> getPlayerNames() building an actual array rather than just doing: return Iterables.transform(players, new Function { @Override @Nullable public String apply(@Nullable ServerPlayer input) { return input == null ? null : input.getName() }); :/ 19:45 <+Grum> wtb j8 with optionals 19:45 < Aikar> :P do the right thing, force players to switch to j8 so server owners will too 19:45 <+Grum> isn't it players.stream().map(ServerPlayer::getName) ? :D 19:45 < Aikar> having java8 on my plugin code has been so nice 19:45 < Aikar> then .collect(Collectors.toList() 19:46 <+Grum> i just need an iterable 19:46 < Aikar> its still a stream API after .map(), gotta collect it 19:46 <+Grum> how to collect it to an iterable? 19:46 < Aikar> dont remember off hand what all is in Collectors 19:46 <+Grum> as that is the most lightweight one 19:47 <+Grum> in theory a stream is iterable ;) 19:49 < Aikar> Collectors.toCollection() appears to be the lowest level 19:49 <+Grum> that would do yeah 19:49 <+Grum> it just gets iterated 19:50 < Aikar> so what CB calls EntityPlayer is named ServerPlayer? 19:50 <+Grum> euuh not 100% sure 19:50 <+Grum> yeah we have em as serverplayers 19:50 < Aikar> but isn't same code used for single player? 19:50 <+Grum> SP has a server running 19:50 <+Grum> so yes 19:51 < dav1d> ^ I remember that change 19:51 <+Grum> 1.2.5 19:51 < Aikar> yeah i know, just feels like an awkward name :P 19:51 <+Grum> it is the player representation on the server 19:51 <+Grum> and yeah it is kinda weird 23:49 <+Amaranth> Aikar: Player is the common code, ClientPlayer, ServerPlayer 23:50 <+Amaranth> But that's not enough because their methods all do too much so there is also the isOnline/isPaused/isClientPlayer/whatever variable to make some of the "common" code only run on the client --- Day changed mer. juin 24 2015 13:59 < MinecrafterTom> I'm having trouble importing the public key sent by the server during login into a cryptography library. According to the library, it's sending a 2-item sequence. The first value is the SubjectPublicKeyInfo, but the second is an empty string. Is this correct, or is the library flawed? 16:58 < gurun> i'm looking for an effective way of raytracing blocks on the server. Like from vec3 -> vec3 and get a list of block positions between them. Anyone has good code out there to show me. 17:05 <+ammar2> gurun: https://gamedev.stackexchange.com/questions/47362/cast-ray-to-select-block-in-voxel-game 17:21 < gurun> ammar2, thanks, that was informative. 17:23 < gurun> So, actually i figured now that .. if i just use a vector of lenght less than 1m and just iterate until i reach the endpoint (adding to the origin) then it would work pretty fast. 17:24 < gurun> i could even put the x or y of the vector to 1 to get the exact lenght to add on each step not to get any duplicates. 17:35 < gurun> So, figured out what I'm doing wrong. In a lot of the code for MC coders tend to use "floor" for converting beteween player float positions to ints. That doesn't fly well, so truncate worked better (simply removing the decimals). 17:36 <+ammar2> uhh isn't floor identical to just removing the decimals 17:37 < jast> for any reasonable definition of 'floor', yes 17:37 < jast> no, wait, it's not 17:37 < jast> floor(-2.5) returns -3.0 17:38 <+ammar2> right floor is the biggest integer that isn't greater than the number 17:38 < jast> the definition in glibc's manpage for 'floor' uses a strategically placed negation to confuse people (at least me) 17:43 <+XorBoole> the issue with floor is always: towards zero or negative infinity/ 17:43 <+XorBoole> fucking negative numbers. they're impostors. don't use 17:46 < gurun> yes, they just spread negativity around 17:47 < gurun> it's like when you see people convert from block positions to chunk positions they use shift operations (>> 4 and similar). And that is also really confusing, because how shift operations deal with the signs are very different from platform to platform. 17:56 < jast> "positions with x<0 or y<0 or z<0? we never go there..." 17:56 < jast> shows how long I haven't looked at minecraft... y < 0... right... 17:58 < gurun> jast, that's kind of a new definition of "don't go there" :-P 22:10 < gurun> For the purpose of collision detection (shooting stuff at enties). What is the height of various entities. Can't believe i don't know how to find that?! 22:17 < redstonehelper> regular minecraft wiki has data on that I think 22:21 < gurun> couldn't find it really. 22:21 < gurun> it says in the regular table "varies by mobs" 22:21 < gurun> which is .. true. 22:47 < gurun> This is what i get: Bats are the 4th smallest mobs in the game 22:47 < gurun> eh 22:49 < redstonehelper> smaller by volume or height? 22:49 < redstonehelper> what's smaller, besides silverfish and endermites? 23:13 < gurun> i have no idea, that was all that the minecraft wiki actually said about it. "thanks a lot" 23:13 <+XorBoole> typical wiki 23:13 * XorBoole scoffs 23:15 < gurun> problem is that .. so few seem to have implemented spawning entities (mobs) and then shooting at them. So there is basically no where to find code for it either. 23:15 < angal> i seen somewhere this information... But can't find it now :( 23:16 <+XorBoole> safestop 23:16 <+XorBoole> ...fail 23:16 <+XorBoole> meant that for a server =p 23:16 < gurun> well, it is info in the wiki on "some" of the mobs, but not really that many. 23:16 < angal> Lol. http://wiki.vg/Entities 23:18 < gurun> yeejh .. 23:19 < gurun> z .. for MC PC .. is that up? 23:19 < gurun> height 23:19 < gurun> hmm, no 23:19 < gurun> forget i 23:19 < angal> nope. 23:19 < gurun> asked 23:20 < gurun> angal, thanks about a 1000. Saved my evening :-P 23:21 < angal> It wery hard to find something when all information split by 2 wikis. 23:23 < gurun> yeah, and well if it was protocol related i would have been looking at wikivg first. For this, i wouldn't even have considered it (and i didn't, so thanks) 23:24 < Fenhl> how is this sort of thing not on mcwiki 23:25 < Fenhl> the articles on entities are seriously lacking in some aspects 23:26 < gurun> Well, maybe because people like me doesn't add the info when i find it. 23:26 < angal> No one in game not needed this. Game will count size for you. But when you creating client/server it required. So this is how it get to this wiki. 23:26 < gurun> that wiki is just too weird to edit. Too advanced for me. 23:26 < dav1d> Fenhl: you can add it, too, it's a wiki! --- Day changed jeu. juin 25 2015 02:05 < benbaptist> Ohai. Does anyone know of the packet(s) I should sent to "reset" the world? e.g. cross-connecting from one server to another, so I want the "Downloading Terrain" screen to re-appear and to reset all world variables. is that possible? 02:05 < benbaptist> I know it does this on BungeeCord and other implementations of proxy servers, but I'm not 100% sure what packets are being used. Sending respawn doesn't seem to do anything if I'm going from the same dimension to the same dimension 02:16 < angal> There are change dimension packet. It's looks like proxy serververs use it. But when you change dimension from same to same, there ame might apear some wired bugs. (like can't see other players) 02:17 < angal> So maybe better perform world unload manually: unload entityes, columns, remove scoreboard, players, etc. 02:20 <+Amaranth> angal, benbaptist: Or just change to a different dimension then immediately back 02:20 < angal> Hm... 03:53 <+XorBoole> I am amused by the progression of underscores prepended to users' nicks on this channel 04:09 <+ammar2> what XorBoole_? 04:16 < dx> the year is 2015, minecraft is so boring that we entertain ourselves by watching underscores 04:39 <+ammar2> dx: that sounds a lot like 2014 04:55 <+XorBoole> WHAT YEAR IS IT 09:59 < benbaptist> angal, Amaranth: Ah, thanks. I might try the dimension swapping, but I guess if that doesn't work as well, I'll have to just manually do it. 09:59 <+Amaranth> benbaptist: Dimension swapping is how CraftBukkit does it 10:00 <+Amaranth> Since you can create multiple worlds that have the 0 "dimension" 10:00 <+Amaranth> So it always tells the client you're going to -1 then back to 0 or 0 then back to -1 if you were in the nether to start with 10:01 < benbaptist> ah, okay. does dimension swapping destroy scoreboards and such> 10:01 < benbaptist> ?* 10:07 <+Amaranth> benbaptist: I'm not actually sure, if it does the existing teleport code fixed it 10:07 <+Amaranth> But since scoreboards are server wide probably not 10:08 <+Amaranth> benbaptist: I know I remember something about BungeeCord having to parse all the scoreboard packets so it could keep track of what the client was seeing to tear it down 10:08 <+Amaranth> So I guess you'd have to do that too 10:30 < benbaptist> Amaranth, Ah, makes sense. 10:31 < benbaptist> now that I look at it, that might be why I was having issues with the player getting stuck and vibrating rapidly. 10:31 < benbaptist> I was sending a respawn packet, but was to the same dimension. 13:45 < rooisnoek> hello everyone, quick stupid question! The minecraft protocol states all data should be transmitted big-endian, but the VarInt protocol says VarInts should be least signifigant group first. Should the most or least signifigant group of a VarInt be transmitted first? 14:06 < gurun> rooisnoek, if you are looking for consistency, you are in the wrong game! 14:06 < jast> endianness isn't really directly applicable to varints 14:07 < jast> (generally speaking... I'm not really familiar with minecraft's varints) 14:08 < rooisnoek> got it. send the least signifigant group first and if my pc blows up its the other way around... :D 14:09 < jast> ... or all mixed up 14:11 < gurun> jast, usually it's mixed up the other way around. 14:11 < gurun> and if that doesn 14:11 < gurun> 't work, you mix it up and do it the other other way around 14:12 < jast> here's my varint encoding: 14:13 < jast> most significant bit of number. least significant bit of number. bit that signals whether more bits follow. 14:13 < jast> etc. 17:20 < gurun> so guys, another topic i find it hard to find solid descriptions of; knockbacks. Anyone know a good source for that? 17:27 < Aikar> code wise or general? The concept of getting smacked so hard it knocks you backwards :P 17:27 < gurun> that's what my wife said too :-( 17:28 < gurun> no, code wise i think i have a handle on it, and concept wise, it's every day life so i know it. No, i'm looking for facts around forces involved. 17:29 < angal> sneaking/souls sand/slowness - decresing knockback. sprinting/speed/knockback ench/punch ench - increasing knockback 17:59 < Not-48e3> [wiki.vg] Edit by SirCmpwn to Server List -> http://wiki.vg/index.php?title=Server_List&diff=6661&oldid=6651 18:00 < Not-48e3> [wiki.vg] Edit by SirCmpwn to Client List -> http://wiki.vg/index.php?title=Client_List&diff=6662&oldid=6656 23:01 < Not-48e3> [wiki.vg] Edit by Monowii to Classic Server List -> http://wiki.vg/index.php?title=Classic_Server_List&diff=6663&oldid=6650 23:05 < gurun_> Knockback .. that is supposed to always knock the entity getting hit in the direction straight away from the projectile hitting it, right. 23:06 < gurun_> or, more precicely, it supposed to add motion to that direction. 23:20 < angal> But in vanilla it not so... 23:24 < angal> So if you move faster and touch projectily from back, it will speed you up. 23:29 * XorBoole prods ammar2 23:29 <+XorBoole> look at my shitty preamble https://gist.github.com/drXor/5f79c77ac559abfd3037 23:36 < gurun_> angal, yeah if you are moving and get shot in the back, then it will most likely add speed forward for you. 23:37 < gurun_> and if you get shot a bit from the side/back .. then add speed forward to the opposite side for you. 23:38 < gurun> but it seems that knockback is special-case basically all through. Can't find a clear pattern in it. --- Day changed ven. juin 26 2015 01:55 <+XorBoole> what's the ratelimit on blockplace? 01:56 <+XorBoole> 4hz? 2hz? 02:20 <+XorBoole> looks like it's 5hz. heh 10:49 <+Thinkofdeath> XorBoole: vanilla doesn't have one iirc, we added one to spigot though 16:38 < Not-48e3> [wiki.vg] Edit by SopaXorzTaker to NBT -> http://wiki.vg/index.php?title=NBT&diff=6664&oldid=5510 21:12 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+8/-0/±0] http://git.io/vtl5v 21:12 < Not-a8a6> [1.8-Models] drXor 527b291 - Reeeeds! 23:57 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+0/-0/±1] http://git.io/vt8Hu 23:57 < Not-a8a6> [1.8-Models] drXor 2f3bbd8 - Better minify, verbose, stuff. --- Day changed sam. juin 27 2015 00:15 < morfin> so in Minecraft ticks are used only for some features 00:15 < morfin> like AI,physics,fire etc 00:18 < morfin> anybody knows why vanilla is so slow? 00:21 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+0/-0/±1] http://git.io/vt8Nj 00:21 < Not-a8a6> [1.8-Models] drXor 221b120 - More build stuff 00:22 < morfin> just interested to avoid same mistakes in design(?) 00:57 < gurun> morfin, i don't know .. is it really that slow, considering? 01:03 < morfin> did you see how vanilla works with 200+ users? 01:03 < morfin> even with 100+ 01:03 <+ammar2> very well and smooth? 01:03 < morfin> vanilla server? 01:03 < morfin> smooth? really? 01:03 <+ammar2> /s 01:04 <+XorBoole> vanilla's great 01:04 <+XorBoole> my vanilla server is running at 20 tps right now 01:04 <+XorBoole> player count: 0/0 01:04 < morfin> i know 2 girls who did that better than Notch/Jeb with Java 01:05 < morfin> well, they rewritten everythning using Netty, pipelines etc 01:06 < gurun> morfin, the only thing required to modify with the vanilla server would be packet-handling. Other than that, performance is probably as good as it can get 01:06 <+XorBoole> vanilla's fast 01:06 <+XorBoole> it has obfuscated names 01:06 <+XorBoole> which means faster execution 01:07 <+XorBoole> obviouslly 01:07 <+ammar2> yeah, the short names help java find methods and variables faster 01:07 <+XorBoole> ammar2 ++ 01:07 <+XorBoole> I've been meaning to write a version of proguard for resource packs 01:07 <+XorBoole> to shrink my modelpack's json even further 01:08 < gurun> lol 01:08 <+XorBoole> I've been doing way to much to minify 01:08 <+XorBoole> but it's so great! 01:11 <+XorBoole> gurun before and after compilation https://gist.github.com/drXor/ca2464b43cd2ba16a150 01:12 <+XorBoole> I think I drop at least 200kb in pack size 01:12 <+XorBoole> 1.2MB isn't that bad, given the amount of model assets eh 01:13 < morfin> you just packet whole thing? 01:13 < morfin> removing spaces/new lines etc 01:14 <+XorBoole> yeah 01:14 <+XorBoole> I want to try make assets use very tiny names next to shave off bytes 01:14 <+XorBoole> all resolved at compilation time of course 01:14 < morfin> Content-Length:1081 vs Content-Length:1541 01:15 < gurun> well, you could just try compression too, and see if the tradeoff works 01:15 <+XorBoole> I like to brag that models is the only resource pack with a build script and a ci 01:15 <+XorBoole> gurun it's zip compression, so not really 01:15 < morfin> but what's point of doing that? 01:15 <+XorBoole> shorter download times 01:15 <+XorBoole> because yes 01:15 < morfin> megabyte or 1.5 ) 01:16 * XorBoole puts his arm around morfin and does that think you do when you're showing someone a panorama 01:16 < morfin> if you zip i think no need to give short names 01:16 <+XorBoole> I have a vision, of an awesome pack 01:16 <+XorBoole> that also downloads really fast 01:17 <+XorBoole> morfin the short names are to shave chracters from name decls json files 01:18 < gurun> XorBoole, i have to admit. I have no idea what that has to do with the performance of the vanilla server :-P 01:19 < morfin> ) 01:21 <+XorBoole> gurun wait what are we talking about? 01:21 <+XorBoole> my pack or the short, obfuscated names? 01:22 < gurun> morfin, do you know how many users you can get out of vanilla given.. say a high end 64 bit 8 core server? 01:22 <+ammar2> 5 maybe 10 :^) 01:22 <+XorBoole> I think the core count is irrelevant 01:22 <+XorBoole> three cores is the most you'll get our of the vanilla server, tops, iirc 01:23 <+ammar2> anyway a high end cpu can hold around 50-100 01:23 < gurun> ammar2 5 maybe 10 .. what? 01:23 <+ammar2> where 50 is fairly comfortable and 100 is kinda pushing it 01:24 <+ammar2> or at least thats how it was, haven't tested recently 01:25 <+XorBoole> ammar2 multiply it by the netty-mojang constant 01:25 <+ammar2> XorBoole: 1/infinity? 01:25 < gurun> a regular rental server today is 4/8 cores (hyperthreaded). The same with a decent laptop (i7). 01:26 <+XorBoole> ammar2 +- 1e-13 01:26 < gurun> if you are telling me that you get tops 100 players out of that, then i think something is wrong. 01:27 <+XorBoole> multiple cores is useless for minecraft 01:27 <+XorBoole> minecraft is single threaded 01:27 <+ammar2> the server logic is primarily single threaded 01:27 <+XorBoole> 90% of stuff happens on a single core, the others would be used for network stuff 01:27 < gurun> yeah, and "90% would be dedicated to IO" so .. 01:27 <+ammar2> I wonder if they still do all the chunk io on the server thread 01:28 <+XorBoole> yes 01:28 <+ammar2> 10/10 01:28 <+XorBoole> pretty sure they doo 01:28 < gurun> i mean, in my own server, if i take away the IO .. there is basically no limits on how many players i can "dry run" 01:28 * XorBoole pops out for a bit 01:28 <+ammar2> gurun: craftbukkit/spigot do async chunk loading 01:29 <+ammar2> which along with a bunch of other optimizations is why they could hold many more players than vanilla 01:30 < gurun> well, to be honest i do most of the stuff i do also multithreaded. 01:31 < gurun> But .. loading chunks and stuff .. takes no time at all. Then we are talking nano-seconds to read regions on SSD drives. 01:32 <+ammar2> well with one thread, if you just keep stacking on players you're eventually gonna hit a point where you just can't keep up 01:33 < gurun> yeah, that sounds kind of weird .. have to admit that. 01:36 < gurun> but 100 players, i have to run some tests on that. I'm not sure it's even going to show up as antyhing measurabled. 01:38 <+ammar2> well not just i/o I'm just saying that's one of the things 01:38 <+ammar2> obviously if you have pathfinding, physics, growth calculations, lighting, everything on one thread eventually you're going to hit walls 01:38 <+ammar2> but those things aren't exactly trivial to implement in a threaded environment safely 01:40 < gurun> ammar2 agree on that. 01:40 < clonejo_> one could abandon mc's original block physics and design one where changes cannot propagate more than one chunk in one tick. 01:43 < clonejo_> hm, i'm not sure of that anymore :/ 01:43 < gurun> clonejo_, what block physics would that be? 01:43 < clonejo_> redstone, pistons, mostly 01:44 < clonejo_> plants growing, leaves disappearing 01:44 < clonejo_> players placing and removing blocks 01:44 <+ammar2> yeah chunks are too small for that 01:44 < clonejo_> well, you can use blocks as large as you like 01:44 <+ammar2> you're basically talking about isolating pieces of the world and running logic on them seperately? 01:45 < clonejo_> now, i'm trying to construct a method where a worker pool runs over the chunks 01:46 < clonejo_> each chunk has a queue of events 01:47 < clonejo_> a worker takes a chunk with a nonempty queue, simulates the effects of the events in the queue, creating items in the queues of adjacent chunks if necessary 01:47 < gurun> yeah, well i went the way where i do stuff with as litte code as possible but stil brute force. I don't think the stuff as chunks, or regions and things like that. Only do that during IO operations. 01:48 < clonejo_> but i think i might get nondeterministic behaviour on chunk borders :/ 01:48 < clonejo_> i shall implement that and check :) 01:49 < clonejo_> if you don't do this you will never get super-large servers/worlds and coherent physics everywhere at the same time 01:49 <+ammar2> gurun: wait so how do you represent the world in memory if you don't have regions? 01:49 < dav1d> clonejo_: still working on your server :o 01:50 < gurun> yeah, well and that's when i'd rathre have brute force, but simple code. In the end, my gut tells me that is going to be more effecient, and for sure easier to maintain. 01:50 < clonejo_> dav1d: no, not really. but i never stopped thinking about the problem ;) 01:50 < clonejo_> i wouldn't do it erlang, anyway 01:51 < gurun> ammar2, if i have it in memory or not is basically irrelevant for me. It's just a matter of "IO". The "in memor" is just cache. 01:52 <+ammar2> oic 01:52 < gurun> meaning, if i have it in memory, it's a cached version of the persitent one, hence "IO" 01:53 < clonejo_> in what chunk distance around a player has the simulation to actually run? 01:54 < gurun> but i did an experiment .. had a line of sight of 250 and loaded 60 levels in the same server at the same time (1000 players). And then memory did go up quite a lot just for storing the chunks from spawn. 01:54 <+Amaranth> Someone did try to make a mod where they ran isolated sections of the world in their own threads 01:54 <+Amaranth> Mods that can teleport items across the world messed things up quite a bit iirc, aside from the usually bugs and headache that would be 01:55 <+Amaranth> But if you start with that design that would be your best bet at making something that can scale to a large number of players 01:55 <+ammar2> yeah modding that in sounds like a massive pain 01:56 < clonejo_> Amaranth: you need a clear idea what to do on the section borders, and how the player handling threads move between sections 01:56 <+ammar2> its should be part of the core architecture 01:56 <+Amaranth> Unless you just want to change minecraft behavior to make it easier to parallelize or don't implement the behavior at all and end up with something like MC classic 01:56 < clonejo_> such in architecture is what i imagined after doing my original server 01:57 < clonejo_> it also gives room for funny tricks like portals 01:57 < clonejo_> if you can handle section borders, portals are just the same 01:57 < clonejo_> no more lame teleporting necessary :3 01:58 <+Amaranth> I'd probably just give up on matching vanilla behavior perfectly and do an ECS setup where the systems can (mostly) run in parallel 01:58 <+Amaranth> Would still mean things like redstone can bog down the server by delaying the overall tick time but I don't see a way out of that anyway 01:58 <+ammar2> vanilla behaviour is odd as fuck in some places, having it be close enough and run well would be ideal 01:59 < clonejo_> yeah, we need less corner-cases 02:01 < clonejo_> also i'd go for a native implementation (eg. rust or c++) 02:02 <+Amaranth> woo rust 02:02 < gurun> clonejo_, i _honestly_ don't think java is the biggest problem here. 02:02 <+ammar2> it really isn't 02:03 <+Amaranth> https://github.com/PistonDevelopers/hematite_server 02:03 < clonejo_> gurun: no, but you can save some memory and keep your latencies down 02:03 <+ammar2> rust doesn't have garbage collection, right? 02:03 <+Amaranth> Right 02:04 < gurun> sure you can do java in the wrong way too, and save some memory doing it the right way. And then you can do some rather extreme things (not difficult, just extreme) and same a shitload of performance. 02:04 < clonejo_> it's only the core engine anyway, one could do the actual physics in lua 02:04 < gurun> but still, doens't make java a big problem in this. 02:05 <+ammar2> Amaranth: hmm is that project actually going somewhere or is it mostly vapor-ware like spout? 02:05 <+Amaranth> *shrug* I think it's mostly designing a packet serialization system so far 02:05 <+Amaranth> Java doesn't have value types and that makes everything worse :( 02:06 <+ammar2> from a quick glance at their repo it seems like they have a lot of spout like ideas with their engine and all 02:06 <+Amaranth> You either have a lot of GC churn or poor API 02:06 <+ammar2> repos* 02:06 < gurun> Amaranth, not true at all, but never mind. 02:07 < clonejo_> anyway gurun is right, language choice is an implementation detail 02:07 <+Amaranth> ammar2: It's attached to the piston project which is basically single handedly building up a gamedev ecosystem 02:07 < clonejo_> it's important to get the general parallelization structure right 02:09 < clonejo_> one will want good plugin apis, so it's hard to make plugins that slow your server down 02:11 <+ammar2> I think the intial idea for the modding api where you could enable and disable mechanics with like creeper.jar was pretty cool. Like if you do that while buildign your own system then you can consume your own api and make it full fledged 02:12 < clonejo_> yep, just implement eg. redstone with that api 02:14 <+ammar2> but that sort of api would either be really unstable or you'd have to do hacky stuff like bukkit used to do to maintain compatbility 02:14 <+ammar2> so like a layer above that would probably be necessary for a nice plugin system 02:15 < Fenhl> ammar2: the project's been mostly inactive lately, but we're in the process of separating our NBT library and publishing it on crates.io 02:16 < clonejo_> ammar2: i don't think the api has to change all that much in terms of features. i mean, minecraft has blocks and entities, and how those generally work doesn't change 02:16 < clonejo_> stuff like crafting and npc interaction might change 02:17 < clonejo_> you would want a versioned api with some backwards-compatability 02:17 < Fenhl> for some reason the IRC channel has been abandoned, and while I'm still interested in moving the project forward it's way too much for one person to manage and I also have other projects plus university stuff 02:18 < Fenhl> and Hematite will most likely go with this sort of API, since modding support is one of our project goals (for the server at least) 02:19 < Fenhl> that brings up another interesting design question though: how does a plugin infrastructure look when the core is written in a compiled language 02:20 < clonejo_> Fenhl: lua is a good option 02:20 < Fenhl> clonejo_: it should be possible to write plugins in Rust though 02:20 < clonejo_> yes, but that makes them a lot less portable 02:21 < Fenhl> Rust is very portable 02:21 < clonejo_> only if you recompile 02:21 < Fenhl> it has cross-compilation and everything 02:21 < Fenhl> so most likely a build script will be created as a side project, which adds support for this sort of thing 02:21 < Fenhl> a plugin managing compiler or so 02:21 < Fenhl> or rather, wrapper around rustc 02:21 < clonejo_> some functionality might be needed in both server and client, and if those plugins are in lua, they can just be sent to the client on login 02:21 <+ammar2> just whack a python interpret in there :P 02:21 <+ammar2> interpreter* 02:22 < clonejo_> lua has proper typing, it can use the same objects in memory, and is easy to embed 02:23 <+ammar2> python is pretty easy to embed too, and its a more popular language 02:23 < clonejo_> okay, it has typing proper enough to be executed quickly 02:23 <+ammar2> but yeah its slow as fuck 02:23 <+ammar2> then again lua isn't breaking any records without a jit either 02:24 < clonejo_> a scripting language is perfect for stuff like ui 02:24 < clonejo_> i think you want both compiled and interpreted plugins 02:35 < dav1d> make an API for plugin APIs 02:36 < dav1d> so you can have everything 02:42 < clonejo_> -.- 03:51 < TkTech> ammar2, LuaJIT is rock solid and performs very well. Runs circles around even pypy in realistic scenarios. 03:51 < TkTech> Still vastly prefer [C]Python tho' 05:10 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+0/-0/±1] http://git.io/vt4Pw 05:10 < Not-a8a6> [1.8-Models] drXor 5910d1c - Broke builds on linux. 05:10 < dx> why would you make a commit just to break builds on linux, that's evil 05:13 <+ammar2> its because XorBoole hates linux 05:14 < dx> you know who else hated linux? adolf hitler 05:44 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+1/-0/±7] http://git.io/vt4D6 05:44 < Not-a8a6> [1.8-Models] drXor b45f41d - Add json validator, because no one likes bad json. Except gson. Gson sucks. 05:45 <+XorBoole> ammar2 I do not 05:45 <+XorBoole> the commit fixes broken builds, I used a bsd sed option 05:45 <+XorBoole> (I test on darwin) 05:46 <+ammar2> you filthy mac hipster 05:46 <+XorBoole> fuck off 05:46 <+ammar2> dx was right all along 05:46 <+ammar2> you're just evil 05:46 <+XorBoole> I am the sole reason steven works on macs 05:46 <+XorBoole> the sole reason! 05:46 <+ammar2> for shame 05:46 <+XorBoole> there are dozens of us! DOZENS! 05:47 <+XorBoole> dx also, not entirely true: hitler liked redhat 05:47 <+XorBoole> he also liked clojure 05:47 * XorBoole runs as fast as he can 05:50 * dx reports XorBoole to the cyberpolice 05:51 <+XorBoole> you'll never catch me! I'm using incognito mode! 05:52 * XorBoole deletes history 05:52 <+XorBoole> hahahahaha! 07:28 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+0/-0/±1] http://git.io/vt4ba 07:28 < Not-a8a6> [1.8-Models] drXor f7bce5a - Fix reeds in gui. 07:28 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+43/-0/±0] http://git.io/vt4bK 07:28 < Not-a8a6> [1.8-Models] drXor 29be8e3 - New gui stuff that isn't ready. 14:01 < gurun> For MCPE, is the server "driving" the player position and rotations? 14:02 < gurun> Sorry, i mean MCPC. 18:25 < konsolas> Hello 18:25 < konsolas> I'm trying to calculate the time it would take for a player with a certain tool to break a certain block. 18:25 < konsolas> According to: http://minecraft.gamepedia.com/Breaking#Speed 18:26 < konsolas> I understand that page, but it doesn't explain how different tool materials affect the speed of breaking. Specifically, when you're trying to mine a block with a pickaxe that is too weak. 18:27 < konsolas> e.g. obsidian with a wood pick, I'm not sure how those penalties are applied. 18:32 < gurun> konsolas, i haven't implemented that fully yet, but the description i just read on that page seems to be very very all-covering. I think it is in there, u just need to read more. 18:33 < gurun> for you specific question, it would appear as that wood pick would have a penelty already on the first calculation (the base time) 18:34 < gurun> ..but a speed-up because it is still the right (best tool table) tool for the job. 18:35 < konsolas> gurun: I just realised that, actually. The mining level only refers to whether the block will drop anything. Thanks, though. 18:36 < gurun> looking forward to implementing that in full. But up intil 0.12 of MCPE it will be a lot easier than that. 18:38 < konsolas> gurun: Just noticed this: if you scroll down the page, you see a list of break times. Notice how obsidian takes 22 seconds to break with a golden pickaxe, even though the gold pickaxe has a higher multiplier than diamond. 18:39 < konsolas> "The first adjustment to this is based on whether the player can harvest the block with current tool. If the player cannot, then the base time is multiplied by 3.33." 18:39 < konsolas> I'm confused by that line, and by the obsidian breaking times. 18:39 < gurun> i guess that is the differnece with that, yes. 18:39 < gurun> guess you can try calculating that on paper and compare with 1.5 or 3.33. 18:40 < konsolas> Yeah... I suppose. 18:41 < konsolas> It's definitely not treated as "no tool" 18:42 < gurun> I vote for "knockback" being the least covered, understood and documented concept in Minecraft. 18:42 < konsolas> I'm going for breaking speed as second least, in that case. 18:43 < konsolas> I might take a look at NoCheatPlus' source code, I'm pretty sure they'll have to calculate break speed somewhere 18:43 < gurun> konsolas, hmm i would vote that the page you sent .. is one of the best documented concept in Minecraft. 18:43 < konsolas> Parts of it, pickaxe mining levels aren't explained. 18:45 < gurun> you mean something like this: Increases mining speed +30% over the previous level: I=130%, II=169%, III=220%, IV=286%, V=371%. 18:45 < konsolas> I mean wood, stone, iron etc. 18:45 < konsolas> i.e: trying to mine obsidian with a gold pickaxe 18:46 < konsolas> According to the page should be faster than a diamond pickaxe, but according to the same page (scroll down) is slower than a diamond pickaxe. 18:47 < gurun> Hmnm, i can't find anywhere it says that gold is faster than diamond on that? 18:48 < konsolas> Diamond multiplier is 8x, gold multiplier is 12x 18:48 <+SpaceManiac> In the big table, it says for Obsidian, diamond=9.4s and gold=20.85s, which is expected (3.33x penalty for Gold being insufficient to break Obsidian) 18:48 < konsolas> "whether the player can harvest the block with current tool" 18:49 * konsolas tries to get his head round this 18:51 < konsolas> If gold is insufficient to harvest obsidian, why is it faster than using no tool? 18:51 < konsolas> "Assuming that the player can harvest the block", then the material multipliers are applied... 18:51 <+XorBoole> because gold is fast 18:52 < konsolas> But it's not technically able to harvest obsidian 18:52 <+SpaceManiac> Hmm, the wording in that section does seem to disagree with the table 18:52 < gurun> "If a proper tool is used, this multiplier is further increased by Efficiency." 18:53 < konsolas> "proper tool" 18:53 < gurun> yes, from the table below 18:53 < konsolas> That doesn't really explain why gold is faster than iron, but slower than diamond for obsidian. 18:54 < gurun> yeah, for obsidian .. that doesn't make sense 18:54 <+SpaceManiac> It looks like there's two dimensions to the tool type, "can harvest" and "helps speed up" 18:55 < konsolas> ummm 18:56 < konsolas> according to the page, the tool must first be able to harvest the block, before "helps speed up" is applied. 19:01 < konsolas> Maybe the speed multipliers are applied even when a player can't harvest the block with his pickaxe level. 19:01 < konsolas> So: gold pickaxe recieves a 33.3% penalty, but still has that 12x damage increase. 19:01 < konsolas> brb maths 19:01 < gurun> yeh, try the math 19:03 < konsolas> calc.exe crashed :| 19:04 < konsolas> so damage = (12 * 0.666) 19:04 < konsolas> obsidian's hardness = 50 19:05 < konsolas> so time in ticks = 1500 / (12 * 0.666) 19:05 < konsolas> so... no. 19:06 < konsolas> Calculations say 9 seconds, actual time is 20 seconds :/ 19:06 < konsolas> Wait nvm i failed 19:07 < konsolas> I get: 20.8125 19:07 < konsolas> Wiki: 20.85 0.o 19:09 < konsolas> Yep, it works for all the values. Thanks everyone :D 23:25 < morfin> if 2 players digs same block they get speed up? 23:25 < morfin> can't remember 23:30 < konsolas> morfin: I'm pretty sure only one player can dig a block at a time. 23:35 < morfin> hmm 23:36 < morfin> that's strange why? 23:38 <+Dinnerbone> Because breaking a block is a property of a player, not the block. That'd need an incredible amount of overhead for something that would very very rarely happen (the vast majority of blocks are destroyed before someone else notices you started) 23:41 < morfin> but what if you're already started and i try to dig it too? 23:44 <+Dinnerbone> Then we're both trying to break it, individually 23:44 <+Dinnerbone> The block doesn't know "I'm 5% damaged", I know that I've broken it 3% and you know you've broken it 7%. The first one of us to get to 100% then breaks it fully 23:54 < morfin> ok --- Day changed dim. juin 28 2015 00:44 < gurun> it would be nice with a "start break block" message tho. 00:44 < gurun> especially if the server could reply "denied" 00:47 < gurun> I don't have MCPC but had a look at plenty of code for it. Can someone perhaps tell me what happens when you shoot an arrow at a player, and how that knockback works on the PC. 00:48 < gurun> The result of my own implementation is different from MCPE, but actually more "dynamically correct". Just want to know what happens on the PC. 01:19 < morfin> gurun what do you mean? 01:19 < morfin> you allowed breaking for several players? 01:20 < gurun> morfin, no can't do that since i don't know that it's under breaking, until it broke on one of the clients. 01:21 < gurun> if i would get a "start break action event" i would know, and then i would make it work for both players. 01:22 < gurun> but i have a gut feeling i'm gettig a break-animation that starts the sequence, but i don't know on what block. 01:31 < angal> Vanilla mcpc client send block breake start event... 01:41 < gurun> does it send it with data to identify the block about to get broken? (I'm on MCPE so it's a bit different) 01:49 < angal> Yup. 01:54 < gurun> ok, then i don 01:55 < gurun> don't see the problem having two players breaking the same block. 10:03 < morfin> i think synchronization overhead will be very big 10:05 < morfin> but if use atomic counter i think it can be much faster 14:19 < gurun> What happens to MCPC if i send it a block ID it doesn't have? Will it crash or do something really bad? 14:45 <+Thinkofdeath> It turns to air 16:36 <+XorBoole> gurun Thinkofdeath actually, last I checked it renders the missing texture block 16:37 < gurun> ok, but it doesn't crash at least? 16:46 <+XorBoole> gurun it used to... 16:47 <+XorBoole> I don't know if it does now. I suggest testing with a quick bukkit plugin or the like 16:47 <+Thinkofdeath> XorBoole: I remember it doing that in the snapshots but by release it changed 16:48 < gurun> The problem i have is that i don't have MCPC. And my MCPE server produce Anvil on save. I just want to know what happens if i load a world with blocks from MCPE that doesn't exist in MCPC (like the new grass path) 16:49 <+XorBoole> on an unrelated note I am extremely frustrated there is no way to make lwjgl run on native resolution on my mac 16:52 <+XorBoole> dammit! 16:52 <+XorBoole> http://wiki.lwjgl.org/wiki/Using_High_DPI_Mode 16:53 <+XorBoole> man, really tempted to prod the mojang people, since this might actually semi-trivially fix my bug ^ 16:53 <+XorBoole> just need to insert a certain method call everywhere and add a vm param 16:53 <+XorBoole> it works fine except... http://puu.sh/iFNp3/3894aba2e8.png 16:54 * XorBoole jabs Thinkofdeath 16:54 <+XorBoole> write a patchcraft path fuck this 16:54 <+XorBoole> "path fuck this" 16:54 <+XorBoole> path for this* 16:54 <+XorBoole> patch** 16:54 * XorBoole throws his laptop in the pool 16:54 < gurun> lol .. frustration taken out on the keyboard! 16:55 < ScruffyRules> XorBoole, Amazinf 16:58 <+Thinkofdeath> XorBoole: too lazy 17:00 <+XorBoole> Thinkofdeath so shall I ping mr. g? 17:02 <+XorBoole> I think the amazing part is that mouse still behaves correctly with hdpi on 17:13 <+XorBoole> or even funnier: the screen size is correct if I force it to my native resolution, but then the mouse breaks 17:13 <+XorBoole> genius 17:15 <+ammar2> XorBoole: so much witchcraft in high dpi 17:16 <+XorBoole> I want my high dpi! it looks fucking majestic! 17:16 <+XorBoole> my item models don't look like shit! 17:16 <+XorBoole> I neeeeed it 17:20 < morfin> i was just interested what if block could know how broken it is 17:21 < Welite> Hello could someone please help me how to construct 0x10 ? I have really no idea what the Slot data are ? http://wiki.vg/Slot_Data 17:21 < morfin> and this number is atomic which can be modified without locking(except bus lock) 17:22 <+XorBoole> Welite Slot is an itemstack, as serialized 17:22 <+XorBoole> there should a description of how to do that on the wiki 17:22 < Welite> Yea I know what it is but how to send it in the packet ? 17:23 <+XorBoole> Welite http://wiki.vg/Slot 17:23 <+SpaceManiac> as bytes, as described on that page 17:23 <+XorBoole> it's just NBT I think 17:24 < Welite> Well but how do I make bytes from NBT ? 17:24 <+XorBoole> NBT is a binary format 17:25 < Welite> And is there any editor for it ? 17:25 <+XorBoole> there are several libraries for writing/reading NBT 17:26 <+XorBoole> http://wiki.vg/NBT#Current_Uses 17:26 <+XorBoole> hmm, did my wiki account get deleted? 17:26 * XorBoole shruggles 17:27 < Welite> Yea I have seen them but how to create that NBT file ? 17:27 <+ammar2> it'll vary by the actual library you're using 17:28 <+XorBoole> also I'm pretty sure I added my NBT lib to the list at some point 17:28 * XorBoole shrugs again 17:29 <+ammar2> XorBoole: no scala, ever 17:29 <+ammar2> anywhere 17:29 <+ammar2> forever 17:29 < Not-48e3> [wiki.vg] Edit by Xor to NBT -> http://wiki.vg/index.php?title=NBT&diff=6666&oldid=6664 17:29 <+XorBoole> tooo lATE 17:32 < Welite> Well as I am coding it in Java I dont think so I can use your lib 17:32 < Welite> But I have found one for Java: https://github.com/Evil-Co/NBT-Lib 17:32 < Welite> Is it up to date ? 17:33 < ScruffyRules> XorBoole, 6666 17:33 <+SpaceManiac> Welite: I can't vouch for its quality, but it is up to date 17:33 < ScruffyRules> Ohai SpaceManiac 17:34 <+SpaceManiac> Hallo 17:34 < morfin> wow i did not know NBT is not just for map 17:34 < Welite> SpaceManiac So if I understand it well, with such a lib I can create file that I will later send in 0x10 ? 17:35 <+SpaceManiac> That's the idea 17:35 < ScruffyRules> How's Glowstone chewing along? 17:35 < Welite> Thanks I am gonna try it 17:35 <+SpaceManiac> Though I should say that if you don't *need* this functionality yet, the Slot Data page describes a way to say "this item has no NBT" that you could use instead. 17:35 < morfin> is reading/writing NBT really that hard? 17:36 <+XorBoole> Welite I use it, I can confirm it doesn't such 17:36 <+XorBoole> however, LordAkkarin wrote it and he's a noob 17:36 * XorBoole runs 17:36 < Welite> :D 17:36 <+ammar2> SpaceManiac: up to date? the format hasn't changed in like 4 years 17:37 <+XorBoole> it needs a complex number tag 17:37 * XorBoole hides 17:38 <+SpaceManiac> ammar2: well, fair, IntArray was added in early 2012, but I have found code lying around missing support for it... 17:38 <+SpaceManiac> ScruffyRules: I was busy with school for several months and now can't decide if it's worth continuing work 17:38 <+XorBoole> why exactly is int array a thing, anyways? byte array should be good enough for all purposes 17:39 <+XorBoole> did notch run out of space or something 17:40 < morfin> what do you mean? 17:41 <+SpaceManiac> It's differently typed; a decoder knows the data will be used as ints and can format its structures as such 17:42 <+XorBoole> meh, seems a tad unecessary 17:42 <+XorBoole> but that's just me 17:47 < Welite> huh I am still totally lost even with the lib 17:47 < Welite> What format does the item have ? 17:48 < Welite> I have opened player.dat with NBT Explorer and there is: count, damage, id, slot 17:48 < Welite> However there http://wiki.vg/Slot_Data is some enchant list or something 17:49 <+SpaceManiac> The NBT in Slot Data is only the NBT in the 'tag' element of the item, and can be omitted if that's not present 18:00 < ScruffyRules> Sorry whoever pinged me 18:00 < ScruffyRules> Computer kinda freaked out 18:02 < ScruffyRules> SpaceManiac, Hmm tough choice. 18:04 <+XorBoole> which packet sends an item entity's itemstack? I can't remember for the life of me 18:04 < Welite> SpaceManiac so I used the lib for Java and I got this: http://hastebin.com/luropifago.avrasm, but how should I send that "tag" ? 18:07 <+SpaceManiac> XorBoole: entity metadata 18:08 <+SpaceManiac> Welite: I think you're still misunderstanding; maybe this will help? https://github.com/GlowstoneMC/Glowstone/blob/master/src/main/java/net/glowstone/net/GlowBufUtils.java#L184 18:09 <+SpaceManiac> Basically, you write the item's type, amount, and durability value; then either write a 0, or its extra NBT data 18:12 < Welite> SpaceManiac, thanks a lot, example that what I needed :) 18:30 < morfin> hmmmmm 18:31 < morfin> protocol of Minecraft is so assymetric 18:32 < morfin> client sends not so much packets to server but server can send way more message types 18:39 <+ammar2> well that's how it usually works in game 18:39 <+ammar2> the client is dumb as possible 18:39 <+ammar2> games* 18:40 < morfin> yes i know "never trust client" 18:40 < morfin> i was trying to investigate what i will need access to handle incoming from clients packets 18:47 < morfin> because i do not want to capture too many object references in lambdas 18:58 < morfin> i was interested why Minecraft still can't apply mods when entering? 18:59 < morfin> like you join server X and if you don't have resources etc. you download them and then join 19:00 <+XorBoole> morfin because notch is an idiot 19:00 <+XorBoole> and our beloved mojang overlords are working their asses off making that feasible 19:01 < dx> yeah, fuck notch, he's still ruining everything even though he stopped working on minecraft 10 years ago 19:01 < morfin> 10 years? 19:01 < dav1d> maybe 9 19:01 < Welite> actually 2 years :) 19:01 < dx> the 1990s were 50 years ago, now you all feel old 19:01 < morfin> yep 19:02 <+XorBoole> dx ostensibly yes, he's fucking us from beyond the proverbial grave 19:02 <+XorBoole> so much notchcode 19:02 < Welite> SpaceManiac can you please look at that ? http://hastebin.com/eqojuxuhag.coffee Am I enclosing proper way ? 19:03 < morfin> hmmmmm 19:04 < morfin> so 19:04 <+SpaceManiac> Welite: at a glance, it looks good to me 19:05 < morfin> most of work is done in background by server, it sends changes to clients, clients send to server very limited set of packets to do something(like closing window) 19:06 < Welite> SpaceManiac: So now I write the returned ByteArray in the packet in the "SlotData" place ? 19:06 < morfin> but seems like protocol is not very extensible 19:06 <+SpaceManiac> yyyyes 19:07 <+SpaceManiac> morfin: there's a 'Plugin Message' packet once you make it to the play stage 19:08 < morfin> yes i know) 19:08 < morfin> but without custom client you're so limited 19:33 < gurun> dx, that was totally uncalled for. That makes like the 70's .. eons ago :( 19:43 < Not-48e3> [wiki.vg] Edit by Cuitpoisson to Protocol -> http://wiki.vg/index.php?title=Protocol&diff=6667&oldid=6649 19:49 <+ammar2> mm good man 19:49 <+ammar2> top edi 19:49 <+ammar2> edit* 19:49 <+ammar2> that was actually fairly confusing before 20:18 < morfin> i want to start over, where should i start? 20:20 < morfin> what should i know to write server properly? 20:27 < angal> Are you shure you want to start new project, instead of joining existing one? There are already lots of mcpc servers aimed for different goals for your choise. 20:28 < morfin> yes i know 20:28 < morfin> but my primary target is learning 20:29 < morfin> and i am using ready libraries(not reinventing wheels like some developers do) 20:29 < morfin> ok not so much of them(mainly ASIO and maybe Boost.System) 21:04 <+XorBoole> Grum, I assume you're aware of the bug with high-dpi displays, yes? apparently the fix is literally setting a java prop and adding a multiplier lwjgl supplies 21:04 <+XorBoole> mostly in the main runnable, too 21:16 <+Grum> XorBoole: what? 21:17 <+Grum> Let me guess, windows attempting to do hi-dpi? 21:17 <+ammar2> Grum: this is what he linked before http://puu.sh/iFNp3/3894aba2e8.png 21:18 <+Grum> not sure which OS that is on 21:18 <+Grum> looks like OSX but isnt 21:18 <+Grum> because it works fine there 21:18 <+ammar2> well I think he uses osx 21:18 <+Grum> works on osx here 21:25 <+XorBoole> Grum osx 21:25 <+XorBoole> runs 1/4 of my native resolution 21:27 <+Grum> not here 21:27 <+XorBoole> 5real 21:27 <+XorBoole> what am I doing wrong then? 21:27 <+Grum> no idea 21:27 <+XorBoole> is your machine retina? 21:27 <+Grum> got a retina screen, weirdly scales resolution 21:27 <+Grum> yes 21:27 <+Grum> 2014 macbook 21:27 <+Grum> running 10.10 21:27 <+XorBoole> it runs fine, but each rendered pixel is 4 pixels on my screen 21:28 <+XorBoole> I'm running maveriks, but that shouldn't change anything, since it's an lwjgl issue 21:28 <+Grum> you are saying something about 4 pixels 21:28 <+Grum> explain yourself better :) 21:29 <+XorBoole> a pixel rendered by lwjgl = a 2x2 square of pixels on my screen. aka the width/height are half the true resolution 21:29 <+Grum> in fullscreen? 21:30 <+XorBoole> if I set the highdpi flag on lwjgl, the game takes up the lower corner of my screen 21:30 <+XorBoole> yes, windowed fullscreen. true fullscreen has the same issue though 21:30 <+Grum> in fullscreen? 21:30 <+Grum> euuh? 21:30 <+Grum> windowed fullscreen is just windowed hehe 21:30 <+XorBoole> semantics! 21:31 <+Grum> so what if you drag the screen to ~75% of the size? 21:31 <+XorBoole> anyways, if I force highdpi via commandline args, and force the resolution to my true resolution it looks much better 21:31 <+XorBoole> but the mouse breaks 21:31 <+XorBoole> also no, resizing doesn't help at all 21:32 <+Grum> you do realize that stuff like the main menu is always scaled to some pixel multiple 21:32 <+XorBoole> I'm not refering to the title screen, I mean the entire game 21:33 <+Grum> so in 1.8.7, what does the debug screen say for the size of your display? 21:33 <+Grum> mine is correct at 1872x1155 21:33 <+XorBoole> Grum http://puu.sh/iG3D6/f36e0cca80.png 21:33 <+XorBoole> err, let me switch to 1.8.7 21:34 <+Grum> because my retina scaling makes 'around' 1080p 21:34 <+Grum> (there is no way to do higher within the OS itself, you are going to have to fuck around with another tool to get 1:1 pixel scaling) 21:34 <+XorBoole> mine is wrong http://puu.sh/iG3In/491fc28bca.png 21:35 <+Grum> the complete screen? 21:35 <+XorBoole> my screen is 2880 across 21:35 <+XorBoole> yes 21:35 <+Grum> Show the complete screen in a screenshot please :P 21:35 <+Grum> Also, you cannot run OSx itself at 1:1 21:35 <+Grum> not unless you fucked around with some external tools 21:35 <+XorBoole> what? of course not 21:36 <+XorBoole> my screen is 10:16 21:36 < redstonehelper> pixel scaling 21:36 < redstonehelper> I think 21:36 <+Grum> almost 100% sure you have your 'Display' settigns set for "Default" scaling 21:36 <+XorBoole> Grum http://puu.sh/iG3Qx/f97b7c955b.png 21:36 <+Grum> which means you basically have a 1440x900 display according to OSX 21:37 <+Grum> looking at the size of your toolbars, what is exactly what is happening 21:37 <+Grum> *that 21:37 <+Grum> System Preferences -> Displays -> Display -> Scaled (and that is at "Default") 21:38 <+Grum> basically this is how OSX works, you select the scaling there and it will pretend the screen is that resolution 21:39 <+Grum> nothing wrong with the game, nothing wrong with lwjgl, you just didn't set the dpi of the osx right :) 21:39 <+Grum> -x 21:39 <+XorBoole> erm, no 21:39 <+XorBoole> that's not the case, because other applications report the correct size 21:39 <+XorBoole> i.e. steven, Thinkofdeath's client, which had the same issue until I debugged it 21:39 <+Grum> sigh, screenshot your System Preferences -> Displays screen 21:40 <+XorBoole> sure, but I don't see how that's relevant. http://puu.sh/iG46K/4c89377a78.png 21:40 <+Grum> as i said, "Default" 21:40 <+XorBoole> I switched it to the bigger one 21:40 <+Grum> now drag it to the proper setting, "More space" 21:40 <+XorBoole> and rescaled minecraft. 21:40 <+Grum> and you will see the resolution of your window allows you to get larger 21:41 <+Grum> and yes, as i just said, it will not be 1:1 21:41 <+XorBoole> it doesn't report the true resolution (still) 21:41 <+Grum> yes because 'More Space' is not 1:1 21:41 <+XorBoole> could prob fix it via defaults 21:41 <+Grum> probably 21:41 <+Grum> and then your system is totally unworkable 21:41 <+XorBoole> yep 21:41 <+XorBoole> because apple 21:41 <+Grum> because everything is too small 21:41 <+Grum> no, this is how you handle DPI properly 21:42 <+XorBoole> on a mac? then why do some of my other games recieve the correct scaling? 21:42 <+Grum> because they play fullscreen-fullscreen 21:42 <+XorBoole> I play my games windowed 21:42 <+XorBoole> they still recieve the correct size 21:42 <+Grum> those won't do it correct unless they explicitly compensate for it 21:43 <+XorBoole> which is why Display.getPixelScaleFactor() 21:43 <+XorBoole> exists* 21:43 <+Grum> which would be a osx+retina specific hack 21:43 <+XorBoole> well, not on lwjgl as far as I'm concerned 21:44 <+XorBoole> the method is platform agnostic but as of now only implemented for osx 21:44 <+Grum> it is not going to be used 21:44 <+XorBoole> shame, I'll just have to patch it myself =/ 21:44 <+Grum> yup :) 21:45 <+XorBoole> btw, your snowmen look great on jd-gui 21:45 <+Grum> easier to actually patch a single piece of code in Minecraft.class and run the game *actually* fullscreen 21:45 < redstonehelper> XorBoole: is jd-gui reliable enough? last time I used it it shit itself 21:45 <+XorBoole> redstonehelper no, I only use it because its gui doesn't suck 21:46 <+Grum> because in 'fullscreen' it will pick a half-resolution when it sees retina 21:46 <+XorBoole> fernflower is what you want 21:46 <+XorBoole> fullscreen is such a pain though. but that's just me. 21:46 <+XorBoole> yeah I remember seeing some /2's in there. I'll tinker with it I suppose 21:47 <+Grum> there is a constant in the class that has the 'retina modes' 21:47 <+XorBoole> is that M in 1.8.2? 21:47 <+Grum> find 2880 and change it to any other number and it should do 1:1 in fullscreen-fullscreen 21:47 <+Grum> and you are going to cry because of the performance 21:47 <+Grum> because the macs are shit performance wise 21:47 <+XorBoole> not really, in my experience 21:48 <+Grum> i tested it, you didn't 21:48 <+XorBoole> skyrim runs great on my mbp (under wine, amazingly) 21:48 <+XorBoole> bt that's just me 21:48 <+XorBoole> I will test it out though 21:49 <+Grum> in all honesty, it makes more sense to run at what ever you told the OSX waht the resolution was than pretending it is the actually screen-pixel-size 21:49 <+Grum> because you just basically said, dear os, i am blind to anything smaller, please make everything FUCKIGN HUGE on my screen 21:50 <+XorBoole> s/you/apple 21:50 <+Grum> so why would you want your gpu to waste all the time on rendering 4x the amount of pixels which you already told the OS you cannot see 21:50 <+XorBoole> this computer is new, I'm not where near finished deapplisinzg it 21:50 <+Grum> well you are still running the OS at 1440x900 resolution 21:50 <+Grum> that is the first slider that went all the way to the right here :p 21:51 <+XorBoole> yep but it fucks up everything, because yes 21:51 <+Grum> no it fucks up nothing 21:51 <+Grum> just putting it to 'More Space' fucks up absolutely nothing 21:51 <+XorBoole> well, it makes everything scale down, which is annoying 21:52 <+Grum> no it scales it to a normal resolution lol 21:52 <+Grum> you are watching it in grandma-style now :P 21:52 <+XorBoole> yeah, because I apparently don't have your eyesight =p 21:52 <+Grum> I have a normal 20/20 21:52 <+XorBoole> it's too small for my taste. I'll just write a patch and be happy with it 21:53 <+Grum> but this also means you shouldn't complain about the pixels you are missing in minecraft :p 21:53 <+Grum> because you are not complaining about that in the OS ;) 21:53 <+XorBoole> I'm complaining about jagged edges 21:53 <+XorBoole> but I know how to fix it now, which is great 21:53 <+Grum> lol its a pixelized game :p 21:53 <+Grum> search for 2880 and change it 21:53 <+Grum> and run actual fullscreen that should fix it 21:53 <+XorBoole> Grum already know where it is. avf.M in 1.8.2 21:54 <+XorBoole> trivial to patch 21:54 <+Grum> should be in a list 21:54 <+XorBoole> yeah, I'll just make it Collections.emptyList() or some shit 21:55 <+Grum> It might break still unsure 21:55 <+Grum> the issue was that lwjgl listed the scaled resolution as 'native available resolution' 21:55 <+XorBoole> wait, I just realized proguard makes private fields capital and public fields lowercase. 21:55 <+Grum> but when you tried to use it, it hard-crashed 21:56 <+Grum> no that is just how it is sorted and thus stuff gets different names 21:56 <+XorBoole> wait, never mind 21:56 <+Grum> public fields get handled first because they can be seen when extending 21:56 <+XorBoole> thought I'd noticed something magical 21:56 <+XorBoole> like I care, I rarely have to make new mappings 21:56 <+Grum> you might still end up crashing :P 21:57 <+Grum> though i do think lwjgl fixed the list of displaymodes after i complained 21:57 <+XorBoole> meh, I might still try the fix that the lwjgl wiki suggests 21:58 <+Grum> i would *really* not bother 21:58 <+XorBoole> I'll let you know if java explodes 21:58 <+XorBoole> Grum I know you won't change it, I'm just curious 21:58 <+Grum> all calculations for input etc are done with the resolution the window reports 21:58 <+Grum> which is based of the resolution the desktop reports 21:58 <+Grum> which is the scaled one in your display settings 21:59 <+XorBoole> yeah this is just Thinkofdeath's resolution problems all over again. the symptoms are pretty much the same if I force highdpi, at any rate 21:59 <+XorBoole> I don't do graphics. *shrugs* 22:08 <+Thinkofdeath> the issue with steven was that (with glfw) the windows size != the framebuffer size 22:08 <+Thinkofdeath> And I used the window size everywhere not knowing they wouldn't always match 22:18 <+XorBoole> meh, I'm going to just roll my own version of patchcraft 22:18 <+XorBoole> except my intellij kotlin plugin broke... meh 22:20 <+Thinkofdeath> yeah don't use that :P its old and most likely broken in some way 22:20 <+XorBoole> which is why I forked it 22:20 <+XorBoole> nub 23:25 <+XorBoole> Grum the trick you suggested failed 23:27 <+XorBoole> wrote a patch using thinky's patcher, it clears the list of DisplayModes. going into fullscreen doesn't fix the resolution =< 23:29 <+XorBoole> decompiling the source reveals that I do indeed clear it --- Day changed lun. juin 29 2015 04:53 < Not-48e3> [wiki.vg] Edit by Fenhl to NBT -> http://wiki.vg/index.php?title=NBT&diff=6668&oldid=6666 05:18 < Fenhl> what did I just read 05:18 < Fenhl> > i am blind to anything smaller 05:19 < Fenhl> that is the exact opposite of what “Retina Display” means 05:26 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol -> http://wiki.vg/index.php?title=Protocol&diff=6669&oldid=6667 11:37 < gurun> Glass, a weird block indeed. So in terms of properties, according to http://minecraft.gamepedia.com/ there is nothing like "solid" for a block, only opacity. WHen reading about glass, it is indeed transperent, but obviously you can still build on it. But it also says that most blocks that depend on a block can't be built ontop of glass. 11:37 < gurun> So, question is; is glass a "solid" block with a special case for the transparency, or is it a "non" solid block, with some exceptions for building blocks on it? 11:40 < l4mRh4X0r> gurun: you can build blocks on non-solid blocks as well 11:40 < l4mRh4X0r> Think about vines, torches, slabs. You can place blocks on top of all those 11:41 < l4mRh4X0r> The only thing you need to place a block is a block face 11:41 < gurun> hmm, yes that was clumsy expressing it like that 11:42 < l4mRh4X0r> And transparent/non-solid is the same property, yes 11:42 < l4mRh4X0r> I prefer non-full block 11:43 < l4mRh4X0r> On which glass is obviously an exception 11:43 * gurun thinking hard .. smoke coming out of the ears 11:44 < l4mRh4X0r> But someone will have to correct me if I'm wrong. 11:44 < gurun> l4mRh4X0r, no i think you are right. Rethinking my question .. 11:45 < gurun> Actually, my problem is flint and steal. And the logic for that. What to ignite and not. 11:48 < l4mRh4X0r> I believe Minecraft itself ignites everything as long as it has air above 11:48 < l4mRh4X0r> Or rather, air in the place where the fire would be 11:51 < l4mRh4X0r> Hmm, and after that it checks each tick whether the block is actually flammable 11:55 < morfin> what about not burning fire? 12:09 < l4mRh4X0r> How do you mean? 12:18 < gurun> for me, it's the problem of when you try to ignite a track. The server i have does this wrong in the sense that it ignites it, on the server, but the flames are not visible on the client .. because it isn't supposed to do it. 12:19 < gurun> so i have to figure out what "properties" of a block to use to control what can ignite, and not. 12:19 < gurun> trancperency seem to be one such property. 12:19 < gurun> but i'm reading .. it is fairly well documented stuff. 12:33 < l4mRh4X0r> From what I can see, it's just a per-block flammability value 13:11 < gurun> l4mRh4X0r, flamable seems to indicate if the block can catch fire, and spread. Igniting a block seems to be a different thing. 13:12 < gurun> So "flamable" more means .. "can be consumed by fire" 14:16 < l4mRh4X0r> Is there a difference? 14:16 < l4mRh4X0r> The only I can think of are netherrack and -- in the end -- bedrock 16:30 < Welite> Hi, I have question about the protocol compression, there is Set Compression packet, is it possible to send that packet before the handshake ? So the login process would be compressed ? 16:47 <+ammar2> don't think so, if you look at the protocol page the only states you're allowed to send the set compression packet in are login and play 16:49 < Welite> ammar2 so the first packet sent to the server always has to be the 0x00 ? 16:51 <+ammar2> aye, also only the server can send the set compression packet anyway 17:33 < l4mRh4X0r> Welite: Compressing handshake and/or status doesn't make much sense anyway, the compression header would be bigger than the data to compress 17:34 < Welite> probably yes l4mRh4X0r, I was just wondering if everthing could be compressed 17:36 < l4mRh4X0r> Ah, check. --- Day changed mar. juin 30 2015 21:18 < Not-48e3> [wiki.vg] Edit by Jespertheend to Rcon -> http://wiki.vg/index.php?title=Rcon&diff=6670&oldid=6555 21:35 < morfin> i was interested 21:35 < morfin> does server check entity positions every tick? 21:35 < morfin> to calculate boundaries 21:48 < morfin> for every entity 23:13 <+XorBoole> morfin I think they're cached, no? 23:17 < morfin> but they're moving) 23:29 < morfin> oh 23:29 < morfin> server recalculates when blocks break? 23:29 < morfin> and moving --- Day changed mer. juil. 01 2015 00:00 <+Amaranth> morfin: Except they're always moving 00:01 <+Amaranth> They're always falling and doing collision detection every tick to stop falling through the ground 00:15 < dav1d> clients can actually cheat and go through blocks ... I had that happen with my client, where I had a lock which wouldnt release for a few seconds and cause the movement which should have been done over the course of this time at once, only checking if the target location was free, server let me teleport through relativly thick walls 02:13 < Not-48e3> [wiki.vg] Edit by Gamingrobot to Client List -> http://wiki.vg/index.php?title=Client_List&diff=6671&oldid=6662 02:14 < Not-48e3> [wiki.vg] Edit by Gamingrobot to Client List -> http://wiki.vg/index.php?title=Client_List&diff=6672&oldid=6662 09:09 < Fenhl> can anyone confirm that broadcast-rcon-to-ops is indeed a valid server property? 13:16 < Aragas> Hello guys. Been awhile since i was her :). I have a question about texture handling in vanilla client. Back there, it was easy with one big texture. Like Terrain. It could be passed in a shader, there would be no problems with drawing multiple blocks in a single VBO. Now each texture is separated. I tried to google this, but have failed. So i wanna ask here. How is it done? I have some suggestions, but all they will decrease performance 13:17 < Aragas> I saw something about custom renderers in forge wiki 13:19 < Paprikachu> one option would be to create a single texture on the fly 13:20 < Paprikachu> a 3d texture also works 13:20 < Paprikachu> but i'm no graphics guy, so idk 13:21 <+Thinkofdeath> vanilla creates the atlas on the fly 13:21 < Aragas> CPU or GPU way? 13:22 <+Thinkofdeath> combine on the cpu, upload to the gpu 13:22 < Aragas> Thank you 14:55 < morfin> so it use atlas anyway? 14:56 < morfin> as i know Minecraft started using separate textures but it make atlas of that in runtime? 14:58 <+Dinnerbone> Yes, it creates an atlas at runtime 15:01 < morfin> i think that's for OpenGL 15:06 <+Amaranth> If you mean the Advanced OpenGL option no, it always does it 15:07 <+Amaranth> iirc it even has logic to generate multiple textures if they would exceed the GPU's maximum texture size 15:08 <+Amaranth> Although I don't remember anything about sorting the blocks so it doesn't flip between them while rendering so not perfect :P 15:51 <+XorBoole> actually, I think there's an amusing bug related to the texture atlas 15:52 <+XorBoole> if you make a model that is not contained inside the 16x16x16 cube, the parts sticking out don't use the breaking animation but instead whatever is next to them on the atlas 16:21 < morfin> oO? 16:21 < morfin> what height giant have? 16:53 < morfin> Dinnerbone, do you know what's heigh of giant zombie? 16:54 < morfin> *height 16:57 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+0/-0/±2] http://git.io/vtdz9 16:57 < Not-a8a6> [1.8-Models] drXor 9f57924 - Make furnaces use only one variant (empty + coal) pending a rewrite. 17:12 < morfin> height of giant zombie is 12 blocks 17:18 <+XorBoole> morfin should be in NMS 17:18 <+XorBoole> in fact, the minecraft wiki might even have this information 17:19 <+XorBoole> no need to poke the bone, at any rate 17:28 < morfin> ok 17:28 < morfin> but why boundary boxes are so broken? 17:28 < morfin> *bounday box 21:51 < conji> Howdy folks. 21:51 < conji> It's me again with a small question. :v 21:54 < conji> When updating window properties for a furnace, it appears the fire icon is 0x1 (which is supposed to be the progress icon according to http://wiki.vg/Protocol#Window_Property). I tried switching the IDs but alas, it does not work. 21:54 < conji> Erh, sorry, I meant the fire icon is 0x0 21:54 < conji> Not 0x1 :P --- Day changed jeu. juil. 02 2015 00:15 <+XorBoole> anyone know why the sides of the ingots are lit wrong? http://puu.sh/iJXUV/ed909675ce.png 00:15 <+XorBoole> I can't nail down any reason (ambient occlusion is off) 00:16 <+Amaranth> Maybe looking at cauldrons would help? 00:16 <+Amaranth> Otherwise no idea 00:17 <+XorBoole> Amaranth yeah I'm not sure, I've been trying for a while 00:17 <+XorBoole> somehow I feel like it's a bug, but I don't want to bother a mojdev about it 00:18 <+XorBoole> at least not until I have a better idea what's causing it 03:00 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+7/-87/±4] http://git.io/vtA2V 03:00 < Not-a8a6> [1.8-Models] drXor 04d7500 - Begin refactoring furnaces. 16:49 <+XorBoole> I'm going crazy. why. http://puu.sh/iKIC5/64d3348699.png http://puu.sh/iKIDu/70c524d1d4.png 16:49 <+XorBoole> I delete the "rotation" element, and it works 16:49 <+XorBoole> whyyyy 16:49 * XorBoole bangs his head against a wall 16:59 < morfin> what is that 16:59 < morfin> you tried to visualize smelting? 17:43 < umby24> anyone know how minecraft did skins in beta 1.7.3, as far as the web api is concerned? i.e. how does the beta client request a skin for a given user 17:44 < barneygale_> umby24, it was just a client-side request to s3 17:45 < barneygale_> can't remember the URL exactly 17:48 < umby24> ok 17:51 < dexter0> http://s3.amazonaws.com/MinecraftSkins/.png for your reference. 18:17 <+Amaranth> iirc even if that service still works it doesn't update anymore --- Day changed ven. juil. 03 2015 00:18 < gurun> dexter0, is it still like that? 00:18 < gurun> don't have account, so can't try it 00:19 < redstonehelper> doesn't update anymore 01:29 < morfin> vanilla is so leaky shit 01:30 < morfin> client was doing nothing but leaked to 1gb 01:31 <+XorBoole> > vanilla 01:31 <+XorBoole> > leaky 01:31 <+XorBoole> I actually have never experienced this 01:31 <+XorBoole> "it's fast because the names are shorter" 01:32 * XorBoole runs for his life 01:36 <+ammar2> that's true 01:36 <+ammar2> by obfuscating the java code and making the names of variables and classes shorter you significantly increase performance 01:37 <+ammar2> since less time is used to look up the symbol names 01:37 <+ammar2> /s 01:49 <+XorBoole> ammar2 well it is ostensibly true, if you drop "significantly" and make "increase performance" any epsilon greater than zero 01:50 <+ammar2> XorBoole: I am true 01:50 <+ammar2> always 01:50 <+ammar2> its a fact 01:51 <+XorBoole> !!ammar2 01:51 <+XorBoole> coerces to: true 01:51 <+XorBoole> I'm annoyed I can't do true js-like type coersion in scala, because !!foo is a parse error 01:51 <+ammar2> XorBoole: (ammar2) | 1 01:52 <+XorBoole> I wish scala had proper unary operators. 01:52 * XorBoole is cri 01:53 <+XorBoole> the parser recognizes exactly + - ! ~ as prefix operators, as part of the spec 01:53 <+XorBoole> which is sad. but I don't see a good way to do it otherwise 01:53 <+XorBoole> what is q"alloc Foo"? "Foo.unary_alloc" or "alloc.Foo"? 01:53 <+ammar2> XorBoole: what is a prefix operator? 01:54 <+XorBoole> ammar2 -integer -> integer.unary_-() in scala 01:55 <+XorBoole> I'm currently writing a spec for a scala-like language for fun, currently I'm planning on making "foo bar" parse as bar.unary_foo() unless bar is only symbols 01:55 <+XorBoole> because non-symbolic prefix operators are really dumb 01:55 <+XorBoole> s/prefix/suffix 01:55 <+XorBoole> \end{rant} 02:22 * gurun loves random rants 14:32 <+XorBoole> mrw my auth token is valid after my nine hour flight to london 16:31 < yawkat> do they even expire 16:42 <+ammar2> nah the uk just has big boundaries around it that expire everything that enters 16:43 < mniip> yawkat, every 24 hours 16:46 <+XorBoole> mniip it might be apocryphal but sometimes I feel like it hasn;t been the case 16:47 < mniip> I've had auth tokens expire right as I was playing :) 16:49 <+XorBoole> something something flakey flakey 16:49 <+XorBoole> or I'm just crazy 16:49 <+XorBoole> I'm probably crazy 16:49 <+XorBoole> then agian I haven't slept in over 30 hours sooo 16:50 < yawkat> oh right the permanent ones are clientToken and accessToken 16:50 <+XorBoole> "permanent" 16:51 <+XorBoole> and yet there's no feature for force reauth even though restarting the client does this, without asking for credentials 16:51 < yawkat> my client token hasnt changed for like a year :P 19:17 < AlphaBlend> in regards to 1.8 spectator mode, when the client tells the server it will spectate an entity, does it do this only once, even if it's already spectating another entity? so like, the server doesn't know it's leaving its existing target, and instead moving to the next target? 22:05 < dav1d> looking at old code, lol https://github.com/Dav1dde/BraLa/blob/master/brala/dine/builder/builder.d#L680-L784 22:06 < dav1d> this thing is crazy 22:06 < dav1d> but somehow handles redstone correctly 22:08 <+ammar2> dav1d: as someone unfamiliar with d, what black magic is this? https://github.com/Dav1dde/BraLa/blob/master/brala/dine/builder/builder.d#L721-L747 22:08 < dav1d> ammar2: I make D code at compiletime 22:09 < dav1d> ammar2: line 749 evaluates the function and treats the string as D code 22:09 < dav1d> so I could copy paste that block 4 times with the arguments changed accordingly instead of that function and lines 649-752 22:10 < dav1d> *749 22:10 < dav1d> yes you could use a function, but that whole things uses compile time function evaluation to unroll as much as possible, basically every block is generated at compiletime 22:11 < dav1d> so at runtime it basically boils down to a worse memcpy for each block 22:11 < dav1d> I mean it was pretty damn fast :/ 22:15 < dav1d> I wouldnt do it again, pretty sure, but the code is pretty cool, especially my atlas code 22:16 < dav1d> atlas.get!("redstone_dust_cross", 0, 3, 3, 3, 3) would spit out the texture coordinates for the "redstone_dust_cross" texture with 3 units beeing cut on every side 22:16 < dav1d> compiletime checks if the redstone_dust_cross exists 22:17 < dav1d> and runtimechecks if all the required textures are actually there when loading 22:18 < dav1d> get_proj <- another gem, would prject any texture on a block, e.g. you could "project" any texture on a side of a stair, it will automatically adjust to the shape of the object as if it was projected on it 22:18 < dav1d> hach the memories --- Day changed sam. juil. 04 2015 13:19 < gurun> hmm, quiet here today 17:03 < SopaXT> Hi there 19:25 < gurun> what protocol will MCPE 0.12 have. The PC protocol or? 19:30 < Aikar> >_> ok whos responsible for making the client stop letting you type onto a sign once the font reaches max width instead of letting you continue typing... This is ridiculous, that a resource pack can affect how long you can type onto a sign, making users switch just to write longer lines 19:30 < Aikar> (if they use one with larger font) 19:33 < dav1d> depending on the font you always have the problem, max length to vanilla font size would make sense though 19:36 <+ammar2> huh wonder if 0 width characters are possible 19:37 <+ammar2> and if there's a hard cap on that 19:41 < Aikar> or just allow 32 at least and let the client handle it on render phase... 19:41 < Aikar> which is how i thought it happened 19:41 < Aikar> figured it would just let user type into it 19:41 < Aikar> or force RP to be ignored for sign editting? 21:14 <+XorBoole> Aikar searge did 21:14 < redstonehelper> is it really a client-side limitation still? 21:17 <+XorBoole> redstonehelper yep 21:17 < redstonehelper> oh god damnit 21:17 <+XorBoole> also me and thinky were laughing at the spigot booth at minecon today over your comment 21:17 < redstonehelper> which one? the one on mc:win10? 21:19 <+XorBoole> yep 21:19 < redstonehelper> fuck that shit man 21:19 <+XorBoole> I actually talked to one of the lead ms people at minecon today 21:19 < shoghicp> gurun: PE protocol 21:19 <+ammar2> welcome to our new overlords 21:19 < shoghicp> you should have come here :P 21:19 < redstonehelper> XorBoole: so the thing 1.8.7 came out for isn't actually fixed?