<<Prev
Next>>
Scroll to Bottom
Stuff goes here
L1[00:11:19] <raoulvdberge> mezz: tape
safety with consequences
L2[00:11:25] <raoulvdberge>
s/tape/type
L3[00:11:39] <mezz> so much
consequences
L4[00:11:55] <mezz> I eliminated some
casting at the cost of... a lot
L5[00:13:09] <fry> always worth it
L7[00:13:53] <fry> in 95% of cases it leads
to better overall design :D
L8[00:14:40] *** cpw is
now known as cpw|out
L9[00:21:00] ⇦
Quits: Ashindigo (uid202308@id-202308.hathersage.irccloud.com)
(Quit: Connection closed for inactivity)
L10[00:28:47] <mezz> fry, unfortunately
Forestry's API is not exactly the best candidate for redesigning,
it's massive and old and stuff depends on it
L11[00:29:05] <fry> that actually makes it
the BEST :D
L12[00:39:56] ⇦
Quits: Shukaro (Shukaro@cpe-24-209-226-133.cinci.res.rr.com) (Read
error: Connection reset by peer)
L13[00:49:59] ⇨
Joins: cppchriscpp
(~cppchrisc@c-76-24-45-127.hsd1.nh.comcast.net)
L14[01:04:41] ⇨
Joins: Ashindigo
(uid202308@id-202308.hathersage.irccloud.com)
L15[01:05:09] <tterrag> mezz: in my
experience generics can make for way cleaner frontend, but almost
always have a way messier backend
L16[01:05:15] <tterrag> in terms of unsafe
casts, etc
L17[01:05:36] <tterrag> FusionLord: if you
use the same key, it should just load
L18[01:06:12] <mezz> yea I have a lot of
generics magic in JEI and it requires some strange data structures
with casting and type enforcement to make it clean for the
API
L19[01:06:29] <fry> wtf are you doing
:D
L20[01:06:38] <tterrag> the way java
generics are....there's always an unsafe cast at some level
L21[01:06:44] <fry> I almost never have any
casting at all in the backend
L22[01:06:45] <tterrag> unless it's
something really simple
L23[01:07:19] <tterrag> even java data
structures are "unsafe" because they have to be backed by
arrays
L25[01:07:26] <tterrag> it's safe in
practice, of course. but in an IDE that would be a warning
L26[01:08:12] <fry> Class<T> - 1st
red flag
L27[01:08:29] <fry> what are you using the
Class for?
L28[01:08:39] ⇨
Joins: SatanicSanta
(~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net)
L29[01:08:41] <mezz> ItemStack.class,
FluidStack.class, PokemoneStack.class
L30[01:08:49] <fry> and why do you need
it?
L31[01:08:55] <mezz> for the type
L32[01:09:05] <fry> but how do you actually
use it?
L33[01:09:10] <mezz> I can set inputs for
each, itemstack, fluidstack
L34[01:09:22] <mezz> and then get outputs
later for itemstack, fluidstack
L35[01:09:24] <fry> but why do you need to
have the class object? :D
L36[01:09:44] <SatanicSanta> Is there a way
to have a player capability that both persists across deaths and is
synchronized on both sides? PlayerEvent.Clone only happens on the
server side, sending a packet for this instance doesn't seem to do
anything. I'm guessing that has to do with the order in which
entities are loaded into the world.
L37[01:09:58] <mezz> so you can say
get(ItemStack.class) ingredients or set(ItemStack.class,
List<List<Itemstack>> stacks)
L38[01:10:11] ⇨
Joins: Davnit_ (~Davnit@72-189-115-20.res.bhn.net)
L39[01:10:38] <fry> so, one IIngredients
object can have both ItemStack and FluidStack ingredients?
L41[01:11:53] <fry> so, it's used only when
you actually "run" the recipe?
L42[01:12:31] ⇦
Quits: Davnit (~Davnit@72-189-115-20.res.bhn.net) (Ping timeout:
206 seconds)
L43[01:12:46] <tterrag> it's also used for
the lookup methods
L44[01:12:49] <mezz> it's a translation
layer between modded recipes and jei
L45[01:13:05] <mezz> yeah
L46[01:13:23] <FusionLord> tterrag, yeah I
removed the required constructor by mistake. :/
L47[01:14:16] <fry> so, JEI only uses that
Class as a "type identifier", and doesn't actually use
any of the Class methods? :D
L48[01:14:20] <FusionLord> which caused an
NPE hiding the underlying issue
L49[01:14:32] <mezz> fry right
L50[01:14:38] <fry> then use an Enum
L51[01:14:52] <tterrag> what
L52[01:14:55] <tterrag> no
L53[01:14:57] <mezz> I have to support
arbitrary ingredients, like pokemon and gasses
L54[01:15:03] <mezz> and thaumcraft
aspects
L55[01:15:10] <tterrag> enums make worse
API objects than classes
L56[01:15:11] <fry> then use an interface
:D
L57[01:15:20] <fry> tterrag: not
always
L58[01:15:35] <tterrag> an interface for
what? if I wanted to query for X type of ingredients, how would I
know what object to supply?
L59[01:15:51] <mezz> the idea is to make
this simple to use, additional layers of indirection will probably
make more modders vomit and/or unhappy
L60[01:15:55] <fry> interface
IIngredientType {}; enum DefaultTypes implements IIngredientType {
ITEM, BLOCK, FLUID, WHATEVER; }
L61[01:16:23] <mezz> I suppose but those
need to keep the type
L62[01:16:25] <fry> using Class makes me
vomit, and it should make any sane programmer vomit :D
L63[01:16:32] <fry> "keep the
type"?
L64[01:16:36] <mezz> or else how will I do
get(ITEM) and have it return List<List<ItemStack>>
?
L65[01:16:54] <tterrag> you'd need
IIngredientType to be generic in itself
L66[01:16:56] <tterrag> which throws out
the enum idea
L67[01:17:09] ***
DarkevilAway is now known as Darkevilmac
L68[01:17:29] ***
Davnit_ is now known as Davnit
L69[01:17:31] <SatanicSanta> fry: why would
using a class make any sane programmer vomit?
L70[01:17:48] ⇦
Quits: Cooler (~CoolerExt@45.249.156.150) (Read error: Connection
reset by peer)
L71[01:17:53] <fry> yup, would actually be
final class Item implements IIngredientType<ItemStack>
L72[01:17:54] <SatanicSanta> or do you mean
an actual Class object?
L73[01:18:02] <fry> yes, Class
objects
L74[01:18:05] <SatanicSanta> oh ok
L75[01:18:13] ⇨
Joins: Cooler (~CoolerExt@45.249.156.150)
L76[01:18:22] <fry> people somehow forgot
that using Class = reflection
L77[01:18:33] <mezz> fry I admit that would
be the clean way to do it but I think ItemStack.class is still
easier to use
L78[01:18:42] <fry> it's not
L79[01:18:48] <Ordinastie> it is
L80[01:18:57] <SatanicSanta> mezz: I agree
with you even though I don't really know what you guys are talking
about.
L82[01:19:04] <fry> it's just what every
java programmer was doing since before generics
L83[01:19:15] <fry> and stuck with it due
to inertia :D
L84[01:19:28] <mezz> for Forestry's
generic-hell-branch I am using stuff like
IIngredientType<ItemStack>
L85[01:19:33] <fry> using Class ->
giving up on generics and going back to java 1.4 days
L86[01:20:00] <mezz> I don't really
understand your zealous hatred for .class, is there a real
disadvantage here or is it personal?
L87[01:20:46] <tterrag> I hate any API that
forces class objects
L88[01:20:50] <tterrag> but in this case,
it's a marker
L89[01:20:54] <tterrag> I think it's
fine
L90[01:20:56] <mezz> one thing I would like
about IIngredientType is that it would have set types, so people
wouldn't get get(Fluid.class) instead of FluidStack
L91[01:20:57] <fry> why not also use string
names for everything and do map lookups? :D
L92[01:21:07] <SatanicSanta> ew
L93[01:21:11] <SatanicSanta> strings
L94[01:21:53] <mezz> so fry if I use
IIngredientType<ItemStack> as keys, how am I storing that
internally so that I am not casting?
L95[01:22:08] <fry> storing what
exactly?
L96[01:22:17] <fry> ingredients?
L97[01:22:28] <mezz> I need something like
Map<IIngredientType, List<List>> to hold
ingredients
L98[01:22:50] <fry> yup,
Map<IIngredientType<?>, List<List<?>>, with 1
actual cast
L99[01:22:58] <mezz> so I save... exactly
no casts
L100[01:23:17] <mezz> because that's what
I have now
L101[01:23:31] <fry> or, if you want to be
fancy, List<Entry<?>>, with Entry<T> holding both
IIngredientType<T> and List<List<T>>
L102[01:23:50] <Ordinastie> that's... a
map
L103[01:23:53] <mezz> sounds like I lose
the lookup time of map heh
L104[01:24:01] <mezz> well there are only
like 4 keys so whatever
L105[01:24:24] <fry> you use the cast
exactly in the place where the type system is not precise
enough
L106[01:24:33] <fry> + you don't use silly
class objects in the API
L107[01:25:50] <mezz> you're solving the
problem I didn't have heh
L108[01:25:55]
⇨ Joins: founderio
(~Thunderbi@p200300C4E3C240002069A62C76AE0887.dip0.t-ipconnect.de)
L109[01:25:59] ⇦
Quits: Brokkoli (~Brokkoli@p5b23c6bc.dip0.t-ipconnect.de) (Quit:
Die Sprache der Politik ist daf�r gemacht, dass L�gen wahr klingen
und das T�ten angemessen wirkt. (George Orwell))
L110[01:26:53] <fry> your problem is
"strange data structures with casting and type
enforcement", is it not? :D
L111[01:27:01] <mezz> yes
L112[01:27:18] <fry> I'm making it less
strange :D
L113[01:27:32] <mezz> very slightly less
strange. the fundamental issue is still there
L114[01:27:42] <fry> if you actually think
about it, Class is very strange :D
L115[01:27:51] <mezz> I need
Map<Something<Type>, SomethingElse<Type>>
L116[01:28:25] <fry> no, you need
<T> Value<T> get(Key<T> key)
L117[01:28:36] <tterrag> which, tbf, you
could make yourself :p
L118[01:28:43] <tterrag> the limitation is
the java stdlib, not generics :P
L119[01:28:44] <fry> and <T>
put(Key<T> key, Value<T> value)
L120[01:28:46] <mezz> I did make it
myself! with casting lol
L121[01:29:37] <mezz> I will implement the
IIngredientType if it will help you sleep at night fry, I don't see
why not
L124[01:31:08] <fry> and you completely
hide it behind the api
L125[01:31:14] <mezz> yeah
L126[01:31:21] <mezz> I already have that
part though
L127[01:31:32] <mezz> I just want _no_
casting but java does not support generics to that level
L128[01:31:43] <fry> barely anything
does
L129[01:32:05] <fry> you need dependent
types for that :D
L130[01:32:22] <mezz> it's like solving a
redstone logical puzzle only to find out pistons get stuck in
certain positions
L131[01:32:27] <fry> which have their own
set of downsides
L133[01:33:10] <fry> type system should be
used everywhere, except for a small set of low-level things
L134[01:33:17] <fry> and this is one of
them :D
L135[01:33:57] <mezz> heh
L136[01:34:00] <fry> if you actually do
that everywhere, everything magically starts to make sense
L137[01:34:10] <fry> and work, and have no
type errors :D
L138[01:34:24] <mezz> I'd call myself
pretty proficient at generics at this point, you're preaching to
the choir
L139[01:34:34] <fry> and yet you still use
Class :D
L140[01:34:53] <mezz> it's
Class<Type> instead of Whatever<Type>, that's all
L141[01:34:56] <fry> the only place you
CAN use it is inside the deserialization code
L142[01:35:19] <fry> and even then you
often don't have to :D
L144[01:38:24] <mezz> how do I implement
IngredientType<T> without using .class ?
L145[01:38:42] <fry> just do
"interface IngredientType<T> {}"
L146[01:38:44] <fry> done :D
L147[01:38:57] <mezz> I mean implement the
ItemStack one
L148[01:39:42] <fry> "final class
ItemType implements IngredientType<ItemStack> { instance; //
singleton boilerplate }"
L150[01:40:26] ⇦
Quits: Doty1154 (~Doty1154@2601:648:8000:134f:a8bd:f9f:4380:7121)
(Read error: Connection reset by peer)
L151[01:40:28] <fry> might actually be
able to use enum singleton for that :D
L153[01:41:10] <fry> enum ItemType
implements IIngradient<ItemStack> { INSTANCE; }
L154[01:41:12] <fry> works :D
L155[01:41:13] <mezz> barf no enums for me
any more
L156[01:41:20] <mezz> public static final
IngredientType<ItemStack> ITEM = new
IngredientType<ItemStack>();
L157[01:41:35] <fry> enum singletons are
the best singletons actually :D
L158[01:41:55] <mezz> forestry is built on
enums and it gets brittle quickly
L159[01:42:13] <fry> don't forget to make
the constructor private/class final
L160[01:42:14] <mezz> espeically with
generics
L161[01:42:18] ⇦
Quits: Larry1123 (Larry1123@irc.larry1123.net) (Ping timeout: 384
seconds)
L162[01:42:27] <fry> yes, but again, in
the case of the singleton it's actually fine :D
L163[01:42:33] <mezz> the constructor is
public because people need to extend it to make their own
ingredient types
L164[01:42:47] <fry> IngredientType
constructor - yes
L165[01:42:54] <fry> ItemType constructor
- no
L166[01:43:16] <mezz> it's just new
IngredientType<ItemStack>();
L167[01:43:16] <fry> there's no sane
reason to extend ItemType I can think of
L168[01:43:32] <fry> new
IngredientType<ItemStack>(){}?
L170[01:44:28] <fry> ah, that works,
yes
L171[01:44:40] <fry> but you won't get the
T value in the stack traces :D
L172[01:46:08] <mezz> tell me why class is
bad again
L173[01:46:15] <mezz> heh
L174[01:46:17] <fry> class or Class?
:D
L175[01:46:24] <mezz>
ItemStack.class
L176[01:46:41] <fry> because you're not
actually using any methods of the Class class :D
L177[01:46:53] <mezz> I get its value in
the stack traces
L178[01:46:58] <fry> which means your API
isn't precise enough :P
L179[01:47:02] <Ordinastie> meanwhile,
you're using all the available methods of your IngredientType
L180[01:47:52] ***
Keridos is now known as Keridos|away
L181[01:48:17] <fry> see, eventually, you
would add, for example, .render(T thing) to it, or smth similar (if
you actually need to have some different logic per-type at some
point)
L182[01:48:23] <fry> which you can't do if
you use Class
L184[01:49:56] <fry> see how this T is the
same T? as the IngredientType T? and the mapping is 1 to 1?
:D
L185[01:50:06] <fry> good indication to
merge them together :D
L187[01:50:54] <fry> yes :D
L188[01:50:54]
⇨ Joins: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
L189[01:50:57] <mezz> nope
L190[01:51:16] <mezz> you can have
multiple ingredient renderers, different depending on where you're
rendering
L191[01:51:29] <mezz> like a tank renderer
vs item list renderer for fluids
L192[01:51:48] <fry> so, you actually have
double dispatch
L193[01:52:02] <fry> on both the
IngredientType and RenderContext or whatever
L194[01:52:26] <fry> then they don't
always go together, but they can :D
L195[01:52:41] <fry> still, you should
probably merge IngredientType and IIngredientHelper
L196[01:52:58] <fry> unless you can think
of any cases where the mapping isn't always 1 to 1 :D
L197[01:53:04] <mezz> they are used in
entirely different contexts
L198[01:53:29] <fry> can one exist without
another existing at the same time for the same T?
L199[01:53:31] <mezz> it's like using a
gold brick as a doorstop because you can
L200[01:54:11] <mezz> it would be
confusing
L201[01:54:18] <fry> what would be?
L202[01:54:29] <tterrag> mezz: your
metaphor game needs work ;D
L203[01:54:41] <tterrag> so does mine,
because that was a similie :C
L204[01:54:52] <fry> naming a class Helper
is another red flag :D
L205[01:55:05] <mezz> using
IIngredientHelper in an api that uses none of the methods on it
doesn't make sense
L206[01:55:32] <mezz> I have lots of
lazily named classes, there's only so many abstract names for
things
L207[01:55:58] <fry> not having a good
name for a thing is a good indicator that that thing shouldn't
exist on it's own :D
L208[01:55:58] <FusionLord> ... doesn't
seem IronNugget was added to the ore dictionary.
L209[01:56:30] <mezz> fry I think you are
spouting generalizations at this point :P
L210[01:56:51] <fry> first of all,
IIngredientHelper has both "render text and color property
thingies" and "mathing helper methods"
L211[01:57:37] ⇦
Quits: kinggoesgaming (uid23106@id-23106.tooting.irccloud.com)
(Quit: Connection closed for inactivity)
L212[01:57:41] <fry> "render text and
color property thingies" should probably be a simple
property-holding final class, passed into the constructor of
IngradientType
L213[01:58:07] <fry> with a non-public
getter used only by JEI, unless you want to expose it for orher
people for some reason
L214[01:58:28] <mezz> JEI uses its own API
for almost everything, it's built on top
L215[01:59:12] <fry> which is why you
split up IngredientType and IIngredientHelper probably
L216[01:59:23] <fry> but using 2
interfaces is not the only way to do that :D
L217[02:00:03] <MCPBot_Reborn> [TEST CSV]
Pushing snapshot_20161227 mappings to Forge Maven.
L218[02:00:07] <MCPBot_Reborn> [TEST CSV]
Maven upload successful for mcp_snapshot-20161227-1.11.zip
(mappings = "snapshot_20161227" in build.gradle).
L219[02:00:17] <MCPBot_Reborn> Semi-live
(every 10 min), Snapshot (daily ~3:00 EST), and Stable (committed)
MCPBot mapping exports can be found here:
http://export.mcpbot.bspk.rs/
L220[02:00:38]
⇨ Joins: Larry1123 (Larry1123@irc.larry1123.net)
L221[02:00:48] <fry> hmm, did
MCPBot_Reborn shift to DST, or am I going crazy? :D
L222[02:01:09] <mezz> it's 3AM EST right
now
L223[02:01:53] <fry> 2016-11-05
10:00:17MCPBot_RebornSemi-live (every 10 min), Snapshot (daily
~3:00 EST),
L224[02:01:57] <fry> 2016-11-06
11:00:17MCPBot_RebornSemi-live (every 10 min), Snapshot (daily
~3:00 EST),
L226[02:02:35] <fry> DST ended Nov 6,
2016
L227[02:02:39] <fry> good, not crazy
L228[02:02:52] <mezz> heh
L229[02:03:01] <Ordinastie> that's still
debatable
L231[02:03:34] <fry> "this
observation wasn't caused by me being crazy"
L232[02:03:55] <fry> aaaanyway
L233[02:04:35] <fry> API doesn't have to
consist solely of interfaces, using actual classes is good too,
especially if they're final :D
L234[02:05:06] <mezz> I like separate
implementation and interface
L235[02:05:45] <fry> something about a
hammer and a nail :D
L236[02:06:04] <mezz> I have only a couple
non-interface classes in the API, usually to hold static final
keys, or as an abstract implementation of an interface for people
to extend if they don't want to implement all the methods
L237[02:06:16] <mezz> omg looks who's
talking here Mr. hates Class
L239[02:06:27] <fry> again, Class != class
:D
L240[02:06:41] <mezz> elaborate?
L241[02:06:54] <fry> last 6 methods of
IIngredientHelper beg to be held in a class together :D
L242[02:07:39] <fry> they beg more to live
inside V, but that's not always possible, is it? :D
L243[02:07:59] <mezz> weren't you just
asking me to combine unrelated classes ?
L244[02:08:18] <fry> combine related
things, separate unrelated things :D
L245[02:08:24] <mezz> huh
L247[02:09:00] <fry> there's nothing tying
first 2 methods of IIngredientHelper and the rest of them
together
L248[02:09:09] <fry> which is part of the
reason for the "helper" name :D
L249[02:09:29] <mezz> fair enough
L250[02:09:47] <fry> you need
RenderProperties getRenderProperties(V v) somewhere
L251[02:10:01] <fry> probably inside
IngredientType
L252[02:10:14] <mezz> what's
RenderProperties?
L253[02:10:25] <fry> second half of
IIngredientHelper
L254[02:10:38] <mezz> those are used for
lookups
L255[02:10:57] <fry>
RenderOrLookupProperties
L256[02:11:09] <fry> you come up with the
name - you know the actual use cases :D
L257[02:11:18] <mezz> "Or" is a
cardinal sin punishable by death
L258[02:11:29] <mezz> begone heathen
L259[02:11:43] <fry> using getDisplayName
for logic is probably a sin too :D
L260[02:12:03] <mezz> is it? I'm searching
for items based on their display name
L261[02:12:20] <mezz> I could make people
search by their item ID but I think they might get mad at me
L262[02:12:20] ⇦
Quits: RebelKeithy (~RebelKeit@173-240-139-59.pool.dsl.nctc.com)
(Ping timeout: 198 seconds)
L263[02:12:21] <fry> searching in the JEI
GUI is fine
L264[02:13:00] <fry> that was just a
nitpick :D
L265[02:13:05]
⇨ Joins: thomas15v (~thomas15v@149.56.143.158)
L266[02:13:06] <killjoy> is there a git
command to do something for every tag?
L267[02:13:25] <mezz> killjoy, that's a
sort of scary question. what are you up to?
L268[02:13:34] <fry> git tag | xargs
"do stuff"
L269[02:13:36] <killjoy> I want to build
every single tag I've made
L270[02:13:57] <killjoy> for luls
L271[02:13:57] <mezz> fry's got it, just
use command line piping
L272[02:14:13] ⇦
Quits: thomas15v (~thomas15v@149.56.143.158) (Client
Quit)
L273[02:14:56]
⇨ Joins: thomas15v (~thomas15v@149.56.143.158)
L274[02:16:18] <fry> git tag | xargs -n1
sh -c 'git checkout "$1"; gradle build' dummy
L275[02:16:22]
⇨ Joins: CoderPuppy (~cpup@32.218.113.202)
L276[02:16:37] <mezz> and then wait like
1000 years
L277[02:17:03] <fry> add & inside cmd
for more lulz
L278[02:18:15] ⇦
Quits: cpup (~cpup@32.218.113.169) (Ping timeout: 206
seconds)
L279[02:19:33] <killjoy> most of them
failed q.q
L280[02:22:22] <mezz> heh
L281[02:29:58] <killjoy> I'd need to
modify the buildscript manually for each tag. Not doing that.
L282[02:30:06] <killjoy> I've got copies
of the jars on github anyway
L283[02:38:16] <fry> > manually
L284[02:39:09] <fry> sed -i
"s/%BUILD_TAG_NAME%/$1/" build.gradle
L285[02:50:13] ⇦
Quits: Everseeking
(~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net) (Quit: Big
Gulps, huh? Alright... Welp, see ya later)
L286[02:56:03] ⇦
Quits: Alex_hawks
(~Alex_hawk@2001:8003:84a5:7a00:cd1d:f539:4568:39eb) (Read error:
No route to host)
L287[02:56:21]
⇨ Joins: Alex_hawks
(~Alex_hawk@2001:8003:84a5:7a00:cd1d:f539:4568:39eb)
L288[02:56:34] ⇦
Quits: AforAnonymous (bitch2k@dyn-050-100.vix2.mmc.at) (Read error:
Connection reset by peer)
L289[02:58:40] ⇦
Quits: I9hdkill
(~quassel@static.102.152.243.136.clients.your-server.de) (Remote
host closed the connection)
L290[03:00:09] ⇦
Quits: founderio
(~Thunderbi@p200300C4E3C240002069A62C76AE0887.dip0.t-ipconnect.de)
(Quit: founderio)
L291[03:00:35] ⇦
Quits: Zed (~Zed@213.152.161.15) (Read error: Connection reset by
peer)
L292[03:01:07]
⇨ Joins: AforAnonymous
(bitch2k@dyn-050-100.vix2.mmc.at)
L293[03:01:57]
⇨ Joins: Zed (~Zed@213.152.161.15)
L294[03:02:11] ⇦
Quits: AforAnonymous (bitch2k@dyn-050-100.vix2.mmc.at) (Read error:
Connection reset by peer)
L295[03:02:12] ⇦
Quits: wolfmitchell (~wolfmitch@149.56.182.12) (Ping timeout: 384
seconds)
L296[03:02:12] ⇦
Quits: Baughn (~Baughn@madoka.brage.info) (Ping timeout: 384
seconds)
L297[03:02:34]
⇨ Joins: founderio
(~Thunderbi@p200300C4E3C240002069A62C76AE0887.dip0.t-ipconnect.de)
L298[03:02:45] ⇦
Quits: Keridos|away (~Keridos@ironhide.stw-bonn.de) (Quit: ZNC -
http://znc.in)
L299[03:02:46] ⇦
Quits: Matthew (~matthew@vps01.cloud.prenger.co) (Ping timeout: 384
seconds)
L300[03:03:41]
⇨ Joins: Keridos|away
(~Keridos@ironhide.stw-bonn.de)
L301[03:03:43]
⇨ Joins: I9hdkill
(~quassel@static.102.152.243.136.clients.your-server.de)
L302[03:04:12]
⇨ Joins: Baughn (~Baughn@madoka.brage.info)
L303[03:06:24]
⇨ Joins: AforAnonymous
(bitch2k@dyn-050-100.vix2.mmc.at)
L304[03:07:07] ⇦
Quits: AforAnonymous (bitch2k@dyn-050-100.vix2.mmc.at) (Read error:
Connection reset by peer)
L305[03:10:01] ⇦
Quits: hk (~HiddenKn@93.ip-158-69-206.net) (Quit: ZNC 1.6.2 -
http://znc.in)
L306[03:10:08]
⇨ Joins: HiddenKnowledge
(~HiddenKn@93.ip-158-69-206.net)
L307[03:10:18] ⇦
Quits: g (~g@ultros.tentacles.are.evidently.sexy) (Quit:
Leaving)
L308[03:10:45]
⇨ Joins: AforAnonymous
(bitch2k@dyn-050-100.vix2.mmc.at)
L309[03:12:23] ⇦
Quits: killjoy (~killjoy@cpe-76-182-16-229.nc.res.rr.com) (Ping
timeout: 206 seconds)
L310[03:27:31]
⇨ Joins: Matthew
(~matthew@vps01.cloud.prenger.co)
L311[03:31:00] ⇦
Quits: Ashindigo (uid202308@id-202308.hathersage.irccloud.com)
(Quit: Connection closed for inactivity)
L312[03:45:04] ***
Kolatra|away is now known as Kolatra
L313[03:59:27]
⇨ Joins: ThePsionic
(~ThePsioni@ip5457f909.direct-adsl.nl)
L314[03:59:56] ***
Darkevilmac is now known as DarkevilAway
L315[04:10:05]
⇨ Joins: Meow-J (~Meow-J@45.32.34.121)
L316[04:26:20] ⇦
Quits: Flenix (~Flenix@2a01:4f8:201:63e2::2) (Quit: ZNC
1.6.1+deb1~ubuntu14.04.0 - http://znc.in)
L317[04:39:19]
⇨ Joins: Flenix
(~Flenix@static.227.9.251.148.clients.your-server.de)
L318[04:39:45] ***
Flenix is now known as Flenix|Away
L319[04:40:12]
⇨ Joins: Umbraco
(~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L320[04:43:40] ⇦
Quits: SatanicSanta
(~SatanicSa@c-76-115-175-15.hsd1.or.comcast.net) (Quit:
sleep)
L321[04:43:44] ⇦
Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp) (Ping
timeout: 206 seconds)
L322[04:51:20] ⇦
Quits: LiftLeft (~loser@im.from.the.gigamatrix.xyz) (Ping timeout:
198 seconds)
L323[04:58:01] ***
PaleOff is now known as PaleoCrafter
L324[04:59:21] <PaleoCrafter> what the
heck's going on with all the PRs? :D
L325[05:00:07] <gigaherz> ?
L326[05:00:57] <PaleoCrafter> I have a GH
notification extension for Chrome and was just surprised that there
were 30 updates in the Forge repo :P
L327[05:01:11] <PaleoCrafter> I guess it's
mostly m.ezz asking for updates XD
L328[05:01:16] <gigaherz> ah
L329[05:04:01]
⇨ Joins: TechnicianLP
(~Technicia@p4FE1C1F5.dip0.t-ipconnect.de)
L330[05:19:35]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L331[05:31:20]
⇨ Joins: sciguyryan (~sciguyrya@45.62.37.38)
L332[05:34:58]
⇨ Joins: Jezza (~Jezza@92.206.161.17)
L333[05:56:36]
⇨ Joins: Umbraco
(~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L334[06:11:28] ⇦
Quits: Umbraco (~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
()
L335[06:20:42] ⇦
Quits: immibis (~chatzilla@122-61-224-36.jetstream.xtra.co.nz)
(Ping timeout: 189 seconds)
L336[06:23:15]
⇨ Joins: g
(~g@ultros.tentacles.are.evidently.sexy)
L337[06:23:35] <g> man, I'd love that
registered nick redirect if esper didn't split so much..
L338[06:37:32] <gigaherz> 13:37
L339[06:38:16] ***
amadornes[OFF] is now known as amadornes
L340[06:42:49]
⇨ Joins: Keanu73
(~Keanu73@host-92-28-72-70.as13285.net)
L341[06:52:13]
⇨ Joins: Ashindigo
(uid202308@id-202308.hathersage.irccloud.com)
L342[06:55:54] <gigaherz> So, apparently
someone hacked sony music's twitter account, and said britney
spears was dead
L343[06:56:01] <gigaherz> before sony had
a time to un-hack their account
L344[06:56:12] <gigaherz> someone else
hacked the account and corrected the other hack's lie
L345[06:56:22] <InusualZ> lol
L346[07:04:34] ⇦
Quits: Alex_hawks
(~Alex_hawk@2001:8003:84a5:7a00:cd1d:f539:4568:39eb) (Read error:
Connection reset by peer)
L347[07:05:10]
⇨ Joins: Alex_hawks
(~Alex_hawk@2001:8003:84a5:7a00:cd1d:f539:4568:39eb)
L348[07:16:11]
⇨ Joins: Girafi
(Girafi@0x555178eb.adsl.cybercity.dk)
L349[07:20:11] <TechnicianLP> !gf
FontRendererglyphWidth
L350[07:21:19]
⇨ Joins: Oblivion
(~Oblivion@cpc93476-roch7-2-0-cust213.10-1.cable.virginm.net)
L351[08:23:12] ***
cpw|out is now known as cpw
L352[08:23:35]
⇨ Joins: fatguylaughing
(~fatguylau@worx01.worxco.net)
L353[08:29:02] ⇦
Quits: sciguyryan (~sciguyrya@45.62.37.38) (Remote host closed the
connection)
L354[08:42:07]
⇨ Joins: Necro
(~Necro@p200300700D6E1AC775A242E68F746A0A.dip0.t-ipconnect.de)
L355[08:55:14] ⇦
Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 384
seconds)
L356[08:55:52]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L357[08:57:40] ***
PaleoCrafter is now known as PaleOff
L358[09:03:14]
⇨ Joins: CsokiCraft
(~CsokiCraf@87.97.30.153.pool.invitel.hu)
L359[09:03:51] <CsokiCraft> What's the
SoundEvent parameter in EnumHelper.addArmorMaterial()?
L360[09:05:42] ⇦
Quits: Alex_hawks
(~Alex_hawk@2001:8003:84a5:7a00:cd1d:f539:4568:39eb) (Read error:
Connection reset by peer)
L361[09:06:50]
⇨ Joins: Alex_hawks (~Alex_hawk@101.186.108.103)
L362[09:12:42] ⇦
Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 195
seconds)
L363[09:14:24]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L364[09:17:29]
⇨ Joins: c233 (~c233@164.40.206.76)
L365[09:22:02] <TechnicianLP> equip-sound
for when you rightclick it
L366[09:22:20] <TechnicianLP> (or add it
to a horse)
L367[09:26:16] <masa> has something
changed recently in forge in regards to starting the game? it seems
to take a lot longer now in the latest 1.11.2 version that it did a
few weeks back in 1.11
L368[09:26:51] <masa> this is even without
any mod added blocks or items, ie. just with my other small utility
type mods
L369[09:28:19] <Girafi> Yeah I noticed the
same thing updating my mods to 1.11.2. No clue what is causing
it.
L370[09:28:47] <gigaherz> 1.11.2 forge is
out?
L371[09:28:52] <CsokiCraft>
TechnicianLP> How do I get one?
SoundEvent.soundEventRegistry.getObject(new
ResourceLocation("sound.name"))?
L372[09:29:57] <TechnicianLP> CsokiCraft:
i have no clue on ho to do sounds ... i just know what that one is
for because i looked it up ... you could look at how vanilla gets
its sounds in there ...
L373[09:30:05] <CsokiCraft> Ok
L374[09:33:11] <CsokiCraft> I found this,
but it's private: SoundEvents.getRegisteredSoundEvent()
L375[09:33:29] <CsokiCraft> So I'm gonna
have to re-make it
L376[09:35:07] <TechnicianLP> if it is
private that cant be the method vanilla uses to init its
armormaterials ....
L377[09:37:39] <gigaherz> CsokiCraft: did
you try looking at how vanilla minecraft constructs its armor
materials?
L378[09:38:00] <CsokiCraft> Yes, that's
where I found SoundEvents.getRegisteredSoundEvent()
L379[09:48:00] <CsokiCraft> BTW I know
this isn't the best place for this question, but does anyone know
what's up with CurseForge? I've been waiting for ~3 hrs for my new
projects to get approved. Are they on Christmas holiday?
L380[09:48:22] <Lord_Ralex> Probably
L381[09:49:00] <CsokiCraft> Yay the sounds
work!
L382[09:51:56]
⇨ Joins: sinkillerj
(~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net)
L383[09:53:55]
⇨ Joins: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L384[10:00:11]
⇨ Joins: Tazz (socks@ds003.info)
L385[10:03:32]
⇨ Joins: williewillus
(~williewil@cpe-24-28-24-13.austin.res.rr.com)
L386[10:08:14] <Necro> wait. you can
accelerate animal growth by feeding them their breeding item? Has
this always been in the game?
L387[10:08:31] <williewillus> yes
L388[10:08:33] <williewillus> 1.8
L389[10:08:36] <gigaherz> for a
while,yes
L390[10:08:37] <gigaherz> XD
L391[10:09:54] <Necro> ok, I just found
out about it because I looked at the interaction code for breedable
animals. This may come in handy.
L393[10:10:18] <williewillus> should I
leave it as is or move it to Potion?
L394[10:12:39] <howtonotwin> I say you put
defaults on Potion
L395[10:12:41] <gigaherz> last thing lex
said is "why not both"
L396[10:12:52] <gigaherz> so I'd make
Potion have the defaults
L397[10:12:54] <TechnicianLP> what is a
curativeitem?
L398[10:12:56] <gigaherz> PotionEffect
copy from Potion
L399[10:13:00] <williewillus>
TechnicianLP: e.g. milk bucket
L400[10:13:03] <gigaherz> TechnicianLP:
the milk bucket
L401[10:13:14] <gigaherz> mod potions can
have different ones
L402[10:13:45] <williewillus> hm
L403[10:14:54] ⇦
Quits: c233 (~c233@164.40.206.76) (Quit: Leaving)
L404[10:15:24]
⇨ Joins: edr
(~edr@d-65-175-180-73.cpe.metrocast.net)
L405[10:18:27]
⇨ Joins: c233 (~c233@164.40.206.76)
L406[10:24:22] ⇦
Quits: CsokiCraft (~CsokiCraf@87.97.30.153.pool.invitel.hu) (Quit:
Leaving)
L407[10:33:31] <FusionLord> I think one of
Pam's mods adds a milk bottle for example
L408[10:35:53] ***
MrKick|Away is now known as MrKickkiller
L409[10:37:54] <williewillus> where do i
turn off intellij's runtime null asserts again
L410[10:42:35] ⇦
Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 189
seconds)
L411[10:45:02]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L412[10:48:24] <gigaherz> williewillus: in
the settings ;P
L413[10:49:14] <gigaherz> if you search
for "runtime"
L414[10:49:33] <gigaherz> you'll get
"Build, Execution, Deployment" -> "Add runtime
assertions for not-null-annotated methods and
parameters"
L415[10:49:45] <gigaherz> you'll get
"Build, Execution, Deployment" -> Compiler ->
"Add runtime assertions for not-null-annotated methods and
parameters"
L416[10:58:12] ⇦
Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping
timeout: 384 seconds)
L417[11:01:00] ⇦
Quits: Ashindigo (uid202308@id-202308.hathersage.irccloud.com)
(Quit: Connection closed for inactivity)
L418[11:01:19]
⇨ Joins: Hgrebnednav
(~Hgrebnedn@d8d872a6e.access.telenet.be)
L419[11:01:40]
⇨ Joins: [com]buster
(~EternalFl@ip5457c57d.direct-adsl.nl)
L420[11:02:10] ⇦
Quits: CoderPuppy (~cpup@32.218.113.202) (Ping timeout: 384
seconds)
L421[11:02:23]
⇨ Joins: cpup (~cpup@32.218.113.202)
L422[11:03:07]
⇨ Joins: IceDragon (~ThatGuy@69.160.115.240)
L423[11:09:12] ⇦
Quits: turmfalke (~turmfalke@p5DCE035C.dip0.t-ipconnect.de) (Quit:
turmfalke)
L424[11:18:24]
⇨ Joins: Ashindigo
(uid202308@id-202308.hathersage.irccloud.com)
L425[11:23:45] ⇦
Quits: cpup (~cpup@32.218.113.202) (Ping timeout: 189
seconds)
L426[11:28:36] <barteks2x> a big question:
should I update all my license headers from 2015 to 2016 now, or
wait until 2017 and do 2015->2017? :D
L427[11:29:37]
⇨ Joins: cpup (~cpup@32.218.113.202)
L428[11:30:59] <Akkarin> Why do people
always feel like they need to update those without changing
anything?
L429[11:31:09] <fry> update to 2017 now?
:D
L430[11:31:25] <barteks2x> I don't know
how to cofngure gradle license plugin to ginore mismatchign
year
L431[11:31:29] <barteks2x> *ignore
L432[11:31:46] <barteks2x> or if it's
possible to configure it that way
L433[11:31:50] <fry> date 2017; do things;
ntpdate
L434[11:33:00] <barteks2x> maybe
automating it was a bad idea, but if I didn't do that, I would
always forget about it
L435[11:33:16] <Lord_Ralex> i mean, the
copyright has a long-life anyways
L436[11:33:48] <barteks2x> creating new
files with years 2015 in years 2016 seems weird
L437[11:33:56] <barteks2x> and I'm doing
it for the whole year now
L438[11:34:52] ⇦
Quits: RichardG (~richardg8@201.37.255.130) (Read error: Connection
reset by peer)
L439[11:36:02]
⇨ Joins: RichardG (~richardg8@201.37.255.130)
L440[11:36:02]
MineBot sets mode: +v on RichardG
L441[11:38:31] <williewillus> the
interaction system is so convoluted t-t
L442[11:38:44] <williewillus> + me being
at flow charts => this is a mess
L443[11:38:51] <williewillus> I should get
someone to clean it up for me after i finish
L444[11:38:55] <williewillus> *being
bad
L445[11:39:13]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L446[11:40:39] <barteks2x> this computer
is so slow that my unit test times out...
L447[11:41:04] ***
diesieben|away is now known as diesieben07
L448[11:45:31]
⇨ Joins: Brokkoli
(~Brokkoli@p5B23C6BC.dip0.t-ipconnect.de)
L449[11:49:10] <masa> should I always have
the pack.mcmeta file in my mods, or only if I actually have some
resources like at least a lang file?
L450[11:49:33] <williewillus> is it even
necessary to have that?
L451[11:49:37]
⇨ Joins: iso2013
(~iso2013@c-67-176-10-45.hsd1.co.comcast.net)
L452[11:49:42] <williewillus> i've seen
mods that just don't have one
L453[11:49:47] <McJty> It is usually
optional
L454[11:49:47] <masa> I never had those
before but I just now notived that JEI has one, when I was looking
at why my lang file broke...
L455[11:50:02] <McJty> Except if you want
to support both 1.11 and 1.10 in one mod :-)
L456[11:50:29] <masa> so then I'd have to
have version 2 in there or something?
L457[11:51:14] <McJty> yes
L458[11:51:49] <masa> hmm right good
point... and then I also need to keep the lang file as en_US.lang
instead of en_us.lang?
L459[11:52:25] <McJty> yes,
en_US.lang
L460[11:52:41] <masa> hmm, meh, I'll just
drop < 1.11 from most of my mods..
L461[11:53:07] <McJty> I think it is still
a bit too early for that. With most major packs newly arrived on
1.10 and staying there for a while still
L462[11:53:37] <masa> I guess I'll need to
keep it in JED and do that there, since my current release for it
is 1.10.2 & 1.11
L463[11:54:46] <masa> well yes, I meant
that most of my small mods haven't gotten any actual changes in
ages, just porting for new mc versions. So I'll just make the new
ports 1.11.x exclusive instead of marking them also for 1.10.2 and
1.9 where they were before
L465[12:00:36] <barteks2x> anyone using
windows normally knows if there is a way to make a window stay on
top? switching is too annoying
L466[12:02:00] <diesieben07> there is a
program that can do it
L467[12:02:07] <diesieben07> don't
remember the name though
L468[12:03:10] <barteks2x> if I have to
install a program for that than I can as well switch back and forth
for a while...
L469[12:04:23] ⇦
Quits: iso2013 (~iso2013@c-67-176-10-45.hsd1.co.comcast.net) (Quit:
Bye :))
L470[12:09:13]
⇨ Joins: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net)
L471[12:12:30]
⇨ Joins: iso2013
(~iso2013@c-67-176-10-45.hsd1.co.comcast.net)
L472[12:13:39]
⇨ Joins: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L473[12:22:04] ⇦
Quits: Kaiyouka (~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
(Ping timeout: 384 seconds)
L474[12:22:24] ⇦
Quits: iso2013 (~iso2013@c-67-176-10-45.hsd1.co.comcast.net) (Quit:
Bye :))
L475[12:43:05] <barteks2x> I was wondering
how I made lapis generation work with infinite depth.... I
didn't
L476[12:45:03] <barteks2x> I really don't
have any good idea how to implement lapis generation
L477[12:45:22]
⇨ Joins: zxc (blk@198-48-175-31.cpe.pppoe.ca)
L478[12:45:25] ⇦
Quits: srs_bsns (blk@198-48-175-31.cpe.pppoe.ca) (Killed (NickServ
(GHOST command used by zxc)))
L479[12:45:25] ***
zxc is now known as srs_bsns
L480[12:52:17]
⇨ Joins: Ipsis
(~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk)
L481[13:01:09] <FusionLord> !latest
1.10.2
L482[13:05:20] ⇦
Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl) (Quit:
Leaving)
L483[13:14:11] <barteks2x> are comments
allowed in .lang files?
L484[13:14:33] <Akkarin> To my
understanding they are standard properties files
L485[13:16:29] <gigaherz> not quite
L486[13:16:30] <diesieben07> they are
not
L487[13:16:33] <diesieben07> but you can
make them
L488[13:16:36] <gigaherz> if you look at
Locale#loadLocaleData
L489[13:16:51] <gigaherz> it will read the
file, split by lines
L490[13:16:54] <Akkarin> because using
properties files were far too simple for the use as
languages!
L491[13:16:56] <gigaherz> and then parse
each line as either empty
L492[13:16:56] <Akkarin> m(
L493[13:17:01] <gigaherz> or
key=value
L494[13:17:10] <diesieben07> put
#PARSE_ESCAPES on the first line
L495[13:17:19] <diesieben07> then it
becomes a normal properties file
L496[13:17:48] <gigaherz> diesieben07: is
that processed at compile time?
L497[13:17:52] <diesieben07> no
L498[13:17:56] <diesieben07> that's a
forge hook
L499[13:18:00] <gigaherz> I see
L500[13:18:47] <gigaherz> I don't see how
that handles comments
L501[13:18:50] <barteks2x> I'm trying to
find out where is vanilla unlocalized name for the Yes/No in
customized world settings on buttons and I can't find it
L502[13:18:53] <barteks2x> any idea where
it is?
L503[13:19:00] <diesieben07> has nothing
to do with comments specifically
L504[13:19:11] <diesieben07> it just loads
it as a normal properties file instead of using mojang's
format
L505[13:19:59] <gigaherz> I can't find
anything overriding loadLocaleData
L506[13:20:17] <diesieben07> it calls
FMLCommonHandler#loadLanguage
L507[13:20:52] <gigaherz> oh
L508[13:20:54] *
gigaherz facepalms
L509[13:20:56] <gigaherz> it's right at
the top
L510[13:21:00] <gigaherz> and I didn't see
it
L511[13:21:35] <barteks2x> so now I see
that comments should work. But now I want to know how I should
handle text on a button in format Something: Yes/No
L512[13:21:49] <gigaherz> barteks2x:
patience. XD
L513[13:22:11] <gigaherz>
I18n.format("gui.yes")
L514[13:22:22] <gigaherz> in
GuiCustomizeWorldScreen
L515[13:22:32] ⇦
Quits: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net) (Ping
timeout: 198 seconds)
L516[13:32:09] <Zaggy1024> is there a way
to update a pull request to apply to the new branch?
L517[13:32:13] <Zaggy1024> or do I have to
just create a new one?
L518[13:32:21] <tterrag> you can rebase it
on github
L519[13:32:54] ⇦
Quits: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Ping
timeout: 384 seconds)
L520[13:35:24]
⇨ Joins: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net)
L521[13:35:54] *
williewillus sighs
L523[13:36:26] <Zaggy1024> dang
L524[13:37:09] <williewillus> that's
without some details I cut out too lol
L525[13:37:58] <gigaherz> I thought FAIL
also cancelled iteration
L526[13:38:14] <Ordinastie> that shows the
design is kinda bad
L527[13:38:43] <williewillus> gigaherz:
not on the client
L528[13:38:44] <williewillus> lol
L529[13:39:23] <williewillus> almost
everything checks result == SUCCESS
L530[13:39:34] <Ordinastie> PIE should be
sent first, and you should be able to chose whether it should test
the other hand, and if it should send to server
L531[13:39:42] <Ordinastie> independently
of what vanilla does
L532[13:39:55] ⇦
Quits: Darkhax
(~darkhax@node-1w7jra24u4wfq878aqe56bl3w.ipv6.telus.net) (Quit:
Leaving)
L533[13:40:21] <williewillus> problem is
you don't know what interactions are necessarily going to occur
ahead of time, esp with the right click block case
L534[13:40:33] <barteks2x> Worldgen is
simple compared to that :D
L535[13:41:05] <Ordinastie> williewillus,
you don't need to know
L536[13:41:25] <Ordinastie> you only need
to know if it's cancelled and if you need to send to server
L537[13:41:39] <williewillus> then you
lose the granularity of UseBlock and useItem
L538[13:41:51] ⇦
Quits: McJty (~jorrit@94-224-154-146.access.telenet.be) (Quit:
Leaving)
L539[13:41:52] <williewillus> PIE is
"sent first", the chart just looks like shit because
that's vanilla's logic in there too
L540[13:41:58] ⇦
Quits: Ipsis (~Ipsis@82-69-71-184.dsl.in-addr.zen.co.uk) (Ping
timeout: 384 seconds)
L541[13:42:44]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L542[13:42:59] <Ordinastie> but if you
don't cancel, the server doesn't receive the event
L543[13:43:38]
⇨ Joins: iso2013
(~iso2013@c-67-176-10-45.hsd1.co.comcast.net)
L544[13:43:42] <williewillus> ? the server
always receives the event
L545[13:43:45] <williewillus>
currently
L546[13:44:07] <Ordinastie> not according
to your chart anyway
L547[13:44:26] <williewillus> where
L548[13:45:32] <Ordinastie> Fire
PIE.RightClickBlock <= that happens client side, right ?
L549[13:45:46] <williewillus> this whole
chart is client
L550[13:45:52] <williewillus> lol
L551[13:46:15] <williewillus> yes and you
are wondering why the right side doesn't have a packet send right?
look further down. the packet send happens halfway through
L552[13:46:18] <williewillus> because
vanilla does it that way
L553[13:46:37] <williewillus> (which is
dumb but I didn't want big patches refactoring their stuff)
L554[13:47:06] ***
Clank[Away] is now known as Clank
L555[13:49:49] <williewillus> i should
highlight the parts patched in by forge or something, to visually
separate that vs vanilla logic
L556[13:54:34] ⇦
Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Read error:
Connection reset by peer)
L557[14:00:20] ⇦
Quits: Zaggy1024 (~Zaggy1024@184-100-102-214.mpls.qwest.net) (Ping
timeout: 198 seconds)
L558[14:03:37]
⇨ Joins: Snapples
(uid167569@id-167569.stonehaven.irccloud.com)
L559[14:13:10]
⇨ Joins: Zaggy1024
(~Zaggy1024@184-100-102-214.mpls.qwest.net)
L560[14:14:38]
⇨ Joins: armctec (~Thunderbi@201.83.171.128)
L561[14:14:52] ⇦
Quits: armctec (~Thunderbi@201.83.171.128) (Client
Quit)
L562[14:15:41]
⇨ Joins: Kaiyouka
(~IdiotNono@c-75-71-231-133.hsd1.co.comcast.net)
L563[14:28:38] ***
Keridos|away is now known as Keridos
L564[14:37:23] ⇦
Quits: Hunterz (~hunterz@62.182.234.189) (Remote host closed the
connection)
L565[14:41:32] ⇦
Quits: primetoxinz (~primetoxi@ip68-107-226-229.hr.hr.cox.net)
(Remote host closed the connection)
L566[14:42:20]
⇨ Joins: primetoxinz
(~primetoxi@ip68-107-226-229.hr.hr.cox.net)
L567[14:42:21]
⇨ Joins: Genuine (~Genuine@104.156.228.160)
L568[14:45:36] <mezz> williewillus, jesus
christ
L569[14:46:06] <mezz> the chart is nice,
the logic is not heh
L570[14:46:23] <williewillus> indeed
lol
L571[14:46:27] <williewillus> it's mostly
vanilla though
L572[14:46:31] <mezz> yep
L573[14:46:38] <williewillus> and that's
just the client side :P
L574[14:46:44] <mezz> I noticed...
L575[14:46:47] <mezz> sigh
L576[14:46:49] <williewillus> though the
server side is much simpler
L578[14:47:17] <williewillus> it's
basically the three trees from this client chart, in separate
methods, and not jumbled together
L579[14:47:52] <mezz> I think this could
benefit from a couple things: colors for vanilla vs forge event,
and client vs server colors and different arrow type for sending
packets once you add that
L580[14:50:43] <mezz> man this logic
is...
L581[14:51:11] <howtonotwin> it's worse
than TileEntityBeacon
L582[14:51:23] <howtonotwin> and that's
saying honestly impressive
L583[14:51:28] <mezz> it's worse than
villager trading
L584[14:51:57] <williewillus> howtonotwin:
what's the beacon do that's bad? :P
L585[14:52:00] <williewillus> calculating
the beam color?
L586[14:52:09] <howtonotwin> the
decompiler screws it horribly
L587[14:52:29] <howtonotwin> ALL the logic
is a total clusterfuck
L588[14:55:04] ⇦
Quits: quadraxis
(~quadraxis@cpc77293-basf12-2-0-cust699.12-3.cable.virginm.net)
(Ping timeout: 384 seconds)
L589[14:55:13] <williewillus> the
interaction isn't even decompiler artifacts
L590[14:55:16] <williewillus> it's just
that complex :P
L591[14:55:19] <williewillus> *:D
L592[14:55:24] <williewillus> *t-t
L593[14:55:47] <howtonotwin> And here we
see willie's sanity finally cracking under the strain
L594[14:55:51] <howtonotwin> he will be
misse
L595[14:55:53] <howtonotwin> *missed
L596[14:56:16]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L597[15:01:18] <barteks2x> would I need a
custom serializer to serialize a Set/List/SomeContainer to/from
json?
L598[15:01:47] <Ordinastie> depends on
what's inside the list/Set
L599[15:01:55] <barteks2x> Strings
L600[15:02:00] <barteks2x> or at least a
type I control
L601[15:02:01] <Ordinastie> then probably
not
L602[15:02:32] <barteks2x> Actually, does
biome generator support disabling/enabling specific bioomes?
L603[15:02:39] <barteks2x> or only what
vanilla worldgen config can do?
L604[15:03:24] <barteks2x> if biome
generator doesn't support that, no point in adding that
list/set
L605[15:07:24] <barteks2x> um...
nope
L606[15:07:45] <barteks2x> biome generator
directly uses ChunkProviderSettings
L607[15:07:49] ***
mumfrey is now known as Mumfrey
L608[15:08:00] <barteks2x> so even if I
want to I can't make it possible to enable/disable specific
biomes
L609[15:08:01]
⇨ Joins: Shambling
(~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L610[15:09:33] <Shambling> well turns out
it wasn't anything I thought it was causing that crash yesterday
for me
L611[15:10:15] <Shambling> was some hard
to reproduce bug from quark that was fixed later in the day, lol
:P
L612[15:11:40] ⇦
Quits: Zesty (~Zesty@2002:b461:1c0c::b461:1c0c) (Quit:
cya)
L613[15:11:42] <barteks2x> I would think
that if mods can add custom biomes, forge/mods can control which
biomes are generated but the only way seems to be hacking
GenLayerBiome with reflection
L614[15:12:28] ***
amadornes is now known as amadornes[OFF]
L615[15:12:40] <Shambling> just because we
can add to a list, doesn't mean forge has full control of he list
I'd imagine if it wasn't built in by default
L616[15:13:08] <Shambling> it is fairly
easy to add to the end of a linked list, for example. Coding the
ability to remove on demand is alot harder afaik
L617[15:13:25] <howtonotwin> adding to the
end of a linked list is rather inefficient :P
L618[15:13:34] <howtonotwin> I think you
mean adding to the start
L619[15:13:46] <Shambling> you know,
you're right
L620[15:14:02] <Shambling> either way, its
still easier to add one item than go through an entire list to find
a biome to hide/replace it
L621[15:14:24] <gigaherz> it is on a
single-linked list
L622[15:14:33] <mezz> linked lists can
keep reference to the start and the end, there's no reason it's
inefficient to add to the end
L623[15:14:34] <barteks2x> The thign is
minecraft has to create and add all needed biomes to list every
time it creates GenLayerBiome
L624[15:14:36] <gigaherz> but on a
doubly-linked list, it's equally as efficient
L625[15:14:41] <barteks2x> so changing
that wouldn't be too hard
L626[15:14:52] <barteks2x> \the only
problem could be biomes generated in other layers
L627[15:14:54]
⇨ Joins: Zesty (~Zesty@180.97.28.12)
L628[15:25:36]
⇨ Joins: shadekiller666
(~shadekill@adsl-108-71-36-38.dsl.lsan03.sbcglobal.net)
L629[15:28:38]
⇨ Joins: ThePsionic
(~ThePsioni@ip5457f909.direct-adsl.nl)
L630[15:31:45] ⇦
Quits: shadekiller666
(~shadekill@adsl-108-71-36-38.dsl.lsan03.sbcglobal.net) (Quit:
Leaving)
L631[15:32:20]
⇨ Joins: GenuineSounds
(~Genuine@104.156.228.160)
L632[15:32:51] ⇦
Quits: Genuine (~Genuine@104.156.228.160) (Ping timeout: 206
seconds)
L633[15:39:50] ⇦
Quits: Necro
(~Necro@p200300700D6E1AC775A242E68F746A0A.dip0.t-ipconnect.de)
(Ping timeout: 384 seconds)
L634[15:46:39] ⇦
Quits: Hgrebnednav (~Hgrebnedn@d8d872a6e.access.telenet.be) (Ping
timeout: 189 seconds)
L635[15:51:05]
⇨ Joins: kinggoesgaming
(uid23106@id-23106.tooting.irccloud.com)
L636[15:51:27] ⇦
Quits: Shambling
(~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Read error:
Connection reset by peer)
L637[15:55:38]
⇨ Joins: killjoy
(~killjoy@cpe-76-182-16-229.nc.res.rr.com)
L638[15:56:37]
⇨ Joins: shadekiller666
(~shadekill@adsl-108-71-36-38.dsl.lsan03.sbcglobal.net)
L639[15:57:58] ⇦
Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 384
seconds)
L640[15:59:12]
⇨ Joins: Necro
(~Necro@p4FE05278.dip0.t-ipconnect.de)
L641[15:59:31]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L642[16:04:07] <williewillus> does anyone
know of a good flowchart creator tool on linux? the one I'm using
(Dia) doesn't let me do different colored text in one object
L643[16:04:43] ⇦
Quits: Keanu73 (~Keanu73@host-92-28-72-70.as13285.net) (Read error:
Connection reset by peer)
L644[16:05:44] ⇦
Quits: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net) (Ping
timeout: 198 seconds)
L645[16:11:49] <mezz> how about
LibreOffice, williewillus ?
L646[16:12:55] <gigaherz> google suggests
LibreOffice Draw, and yEd
L648[16:13:16] ⇦
Quits: TechnicianLP (~Technicia@p4FE1C1F5.dip0.t-ipconnect.de)
(Ping timeout: 384 seconds)
L649[16:13:37] <mezz> neat
L651[16:14:26] <mezz> lol
L652[16:14:30] <williewillus> lol
L653[16:15:20] <mezz> that suggestion is
so linuxy it just melted my face off
L654[16:15:57] <gigaherz> I wonder if
programming that in postscript wouldn't be easier than in TeX
L656[16:16:31] <diesieben07> tikz is a
fucking nightmare
L659[16:17:58] <mezz> TikZ looks nice if
you're writing a book and have infinite time and patience
L660[16:19:07] <fry>
www.texample.net/media/tikz/examples/TEX/flowchart.tex oh my god 90
lines of code good thing I indeed to have infinite time and
patience
L661[16:21:17] <mezz> who counts time in
lines of code? :P
L662[16:21:45] <diesieben07> it reads
worse than perl goddamnit :D
L663[16:22:03]
⇨ Joins: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net)
L664[16:23:01] <fry> hurr durr look at a
weird unknown language
L665[16:23:14] <shadekiller666> at least
its not brainfuck...
L666[16:23:48] <williewillus> writing it
in "code" is only worth it if you're going to be
revisiting it, collaborating on it, etc. for one of things I'll
take dragging boxes around :P
L667[16:23:52] <williewillus> *one
off
L668[16:24:20] <fry> your loss :P
L669[16:24:23] <mezz> sorry I don't pick
up new languages instantly fry
L670[16:24:30] <diesieben07> someone's
butthurt :D
L671[16:24:46] ***
MrKickkiller is now known as MrKick|Away
L672[16:25:37]
⇨ Joins: gr8pefish
(~gr8pefish@24-121-184-14.flagcmtk01.res.dyn.suddenlink.net)
L673[16:25:44] <fry> that starts to happen
after the second dozen, if you vary them enough :D
L674[16:26:05]
⇨ Joins: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net)
L675[16:26:19] <diesieben07> and it's not
"weird and unknown", i worked with TeX for a good year
every week because some asshat at uni wanted the homework done in
TeX ...
L676[16:26:27] <diesieben07> still sucks
:D
L677[16:26:50] <gigaherz> I had a teacher
like that one
L678[16:26:53] <gigaherz> once*^
L680[16:27:09] <gigaherz> I wrote the
paper in msword
L681[16:27:17] <gigaherz> and then used a
word-to-tex exporter
L682[16:27:20] <williewillus> lol
L683[16:27:28] <williewillus> i just
downloaded a template and ran with it
L684[16:27:36] <shadekiller666> is there
an event that gets fired when the world gets saved/loaded?
L685[16:27:38] <mezz> yea I did homework
in latex one year just to learn it... not the most fun I've ever
inflicted on myself
L686[16:27:58] <gigaherz> shadekiller666:
maybe, but what do you need it for?
L687[16:28:01] <diesieben07>
shadekiller666, WorldEvent.Save / Load? :D
L688[16:28:10] <diesieben07> but
yeah
L689[16:28:13] <diesieben07> what he
said
L690[16:29:14] <shadekiller666> custom
multiblock system, need to save data to nbt about each structure in
the world when the game is closed on SP/when the world is saved in
MP
L691[16:29:28] <gigaherz> use
WorldSavedData
L692[16:29:33] <gigaherz> keep all the
structures in there
L693[16:29:35] <shadekiller666> and load
the data back when the world is opened
L694[16:29:47] <gigaherz> it will save
whenever the world saves to disk
L695[16:29:51] <gigaherz> and load on
demand
L697[16:30:29] <gigaherz> all you ahveto
do is implement a few methods, and make sure that you call
markDirty to notify mc that there's data worth saving
L698[16:30:40] <shadekiller666> ok
L700[16:31:18] <williewillus> !gf
field_191552_t
L701[16:31:23] <williewillus> !gf
field_191552_t 1.11.2
L702[16:33:24] ***
DarkevilAway is now known as Darkevilmac
L703[16:33:49] <shadekiller666> gigaherz,
when are you using the methods in RiftStorageWorldData?
L704[16:34:16] <gigaherz> when I need the
data
L705[16:34:19] <gigaherz> you do
like
L706[16:34:35] <gigaherz> RSWD.get(id) --
don't cache the result)
L707[16:34:42] <gigaherz> and then call
the methods on that afterward
L709[16:35:39] <gigaherz> oops .get(id) I
meant .get(world)
L710[16:37:27] <shadekiller666> ok so if i
was to make my StructureManager class extend WorldSavedData, and i
placed a new structure (ie. updated the contents of a map in the
class) i would just call markDirty() as well to make sure that
writeToNBT gets called at the correct time?
L711[16:37:52] <gigaherz> yes
L712[16:37:54]
⇨ Joins: NineChickens
(uid196646@id-196646.ealing.irccloud.com)
L713[16:38:35] <shadekiller666> and i'm
guessing readFromNBT gets called automatically whenever the world
is loaded?
L714[16:38:50] <gigaherz> sortof
L715[16:39:03] <gigaherz> it gets called
when someone calls getOrLoadData
L716[16:39:22] <gigaherz> hence why I said
it loads on demand
L717[16:39:35] <shadekiller666> would i
need to catch a WorldEvent.Load to make sure that happens?
L718[16:39:41] <gigaherz> no
L719[16:39:49] <gigaherz> if you do it
right, no
L720[16:39:56] ⇦
Quits: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
(Read error: Connection reset by peer)
L721[16:40:04] <shadekiller666>
ok...
L722[16:40:09] <gigaherz> all you have to
do is let your multiblocks access the data whenever they need
it
L723[16:40:14] <williewillus> i think he's
saying it loads whenever it's first used
L724[16:40:20]
⇨ Joins: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L725[16:40:22] <williewillus> regardless
of if that's 2 or 3000 ticks after the server starts
L726[16:40:25] <gigaherz> don't rely on
worldsaveddata for active logic
L727[16:40:51] <gigaherz> as the name
implies, it's for managing data that gets saved into the world save
files
L728[16:41:17] <gigaherz> so keep the
active logic separate, and just query the data when you need
it
L729[16:41:37] <shadekiller666> here is
the scenario: for SP: the player has just launched the game and is
loading an existing world, the data in question must be available
to any structure members before they can be
placed/broken/checked/activated
L730[16:41:55] <gigaherz> yes
L731[16:41:55] <gigaherz> so
L732[16:42:00] <williewillus> it loads
when anyone asks for it
L733[16:42:03] <gigaherz> whenever any one
of those operations has to happen
L734[16:42:07] <gigaherz> you'll
call
L735[16:42:19] <gigaherz>
StructureManager.get(world).getData(whatever)
L736[16:42:31] <gigaherz> the get method
will in turn call getOrLoadData
L737[16:42:31] <shadekiller666> for MP:
the world has just been loaded by the server and the data needs to
be available before structures can do anything
L738[16:42:36] <gigaherz> which will
trigger the data to load
L739[16:42:45] <gigaherz> before returning
from the call
L740[16:42:49] <gigaherz> so either
way
L741[16:42:59] <gigaherz> whatever gets
returned from the get(world) method, will have the data
loaded
L742[16:43:05] <gigaherz> or be a
brand-new object if no data existed before
L743[16:44:23] <shadekiller666> i have
StructureManager set up to be the middle-man for all 4 of those
situations, so i suppose i could have a check to see if the map is
null/empty (or a flag determining if data has been loaded), and
then call the load method to load everything
L744[16:45:27] <shadekiller666> there is
only supposed to be one instance of StructureManager, which all of
the structures call to for operations
L745[16:46:45] ***
GenuineSounds is now known as Genuine
L746[16:51:18] <williewillus> anyone have
a 1.11.2 workspace handy right now? can you just run it and see if
milk buckets clear potions properly?
L747[16:51:22] <williewillus> might of
come across a porting bug
L748[16:51:29] <williewillus> *have
L749[16:51:40] <gigaherz> shadekiller666:
uhhh you don't have to test if it's loaded
L750[16:51:44] <gigaherz> getOrLoadData
does that for you
L751[16:51:52] <gigaherz> you just query
it whenever you need access to the data
L752[16:52:07] ⇦
Quits: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
(Ping timeout: 206 seconds)
L753[16:52:13] ⇦
Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Read error:
Connection reset by peer)
L754[16:52:18] <gigaherz> check my example
"get" method
L755[16:52:22]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L756[16:52:27] <gigaherz> the static
one
L757[16:53:08] <shadekiller666> i'm just
wondering when i should do that whole thing with
getOrLoadData
L758[16:53:23] <shadekiller666> let me
throw this on a gist and i'll show you what i mean
L759[16:54:35] ⇦
Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Client
Quit)
L760[16:54:36] <gigaherz> what do you mean
"when"?
L761[16:54:44] <gigaherz> at some point in
your code
L762[16:54:45] <diesieben07> need access
to the data? call getOrLoadData
L763[16:54:46]
⇨ Joins: KGS
(~KGS@h-155-4-129-249.na.cust.bahnhof.se)
L764[16:54:48] <gigaherz> you'll need
access to the data
L765[16:54:57] <gigaherz> so you query the
world storage manager
L766[16:55:03] <williewillus> just treat
it like a getter, it loads from disk if it's not in memory already,
otherwise it returns it from memory
L767[16:55:04] <gigaherz> and ask for the
instance
L768[16:55:05]
⇨ Joins: Delaxarnyazer
(~Delaxarny@2a02:a44e:91ce:1:80dc:7855:5421:3308)
L769[16:55:09] <williewillus> look at the
impl of getOrLoadData
L770[16:55:10] <shadekiller666>
StructureManager has a public static final instance variable
L771[16:55:15] <gigaherz> don't
L772[16:55:18] <gigaherz> you don't want
that
L773[16:55:24] <gigaherz> use a static
get(World) method
L774[16:55:27] <gigaherz> like I suggest
in the docs
L775[16:55:48] <gigaherz> you do need a
World instance to query the world storage map
L776[16:56:15] <shadekiller666> :/
L777[16:56:25] <gigaherz> any time you'd
do
L778[16:56:31] <gigaherz>
StructureManager.instance
L779[16:56:33] <gigaherz> reaplce that
with
L780[16:56:38] <gigaherz>
StructureManager.get(this.world)
L781[16:56:38] <gigaherz> or
L782[16:56:43] <gigaherz>
StructureManager.get(worldIn)
L783[16:56:47] <gigaherz> whichever the
case
L784[16:57:14] <gigaherz> this will ensure
that you don't use stale data
L785[16:57:29] <gigaherz> and if you
choose to have separate data structures per dimension
L786[16:57:32]
⇨ Joins: Everseeking
(~Everseeki@pool-100-6-95-214.pitbpa.fios.verizon.net)
L787[16:57:34] <gigaherz> that you query
the right one
L788[16:58:06] <shadekiller666> i just
don't want to have A. a bunch of different instances of
StructureManager if i can avoid it, and B. have to read from disk
everytime a structure needs to be
placed/broken/checked/updated
L789[16:58:21] <gigaherz> that's not how
it works
L790[16:58:39] <gigaherz> getOrLoadData
will return the same instance every time
L791[16:58:41] <gigaherz> if it's already
loaded
L792[16:58:52] <gigaherz> it only loads
once, and gets the rest of the times
L793[16:58:54] <shadekiller666> or a new
one if it hasn't
L794[16:59:00] <shadekiller666> ok
L795[16:59:08] ⇦
Quits: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net) (Ping
timeout: 198 seconds)
L796[17:00:07] <shadekiller666> i'm
assuming that having a private constructor then is a bad
idea?
L797[17:00:26] <shadekiller666> given that
getOrLoadData needs to be able to instantiate one?
L798[17:00:45] <shadekiller666> wait no,
what am i saying
L799[17:01:01] <gigaherz> add the
constructors exactly how I describe them in the documentation page
;P
L800[17:01:06] <gigaherz> you need the
two
L801[17:06:20] <shadekiller666> hmmm
L802[17:06:51] ⇦
Quits: founderio
(~Thunderbi@p200300C4E3C240002069A62C76AE0887.dip0.t-ipconnect.de)
(Quit: founderio)
L803[17:06:56] ⇦
Quits: Oblivion
(~Oblivion@cpc93476-roch7-2-0-cust213.10-1.cable.virginm.net)
()
L804[17:07:13] <shadekiller666> wonder how
long it takes on of my structure templates to load...
L805[17:07:21] <shadekiller666> load from
disk that is
L806[17:09:51] <gigaherz> depends on how
big it is?
L807[17:10:41] <shadekiller666> each
template is defined as a single json and at least one png
L808[17:11:29] <shadekiller666> where each
pixel in the png is one block in the template
L809[17:12:23] <shadekiller666> if the
template is more than 1 block tall, then the png is layed out
similar to how the textures for lava and water are layed out
L810[17:12:33] <shadekiller666> where each
"frame" is one section of the png
L811[17:13:24] <shadekiller666> i don't
anticipate a structure being much more than 16x16x16 in size, so
the pngs are pretty small
L812[17:14:22] <shadekiller666> and yes, i
know that minecraft has its own way of storing structures in NBT
from the structure blocks, but myself and the other developer
working on this mod wanted a more visual way of defining a
structure
L813[17:14:27] <gigaherz> sounds like it
would be just a few milliseconds
L814[17:14:58] <williewillus> if you
wanted a "visual" way couldn't you use the structure
blocks in game and save them? :P
L815[17:15:32] <shadekiller666> in that
case, reading all of them from disk every time a new instance is
made in the get() method won't be unreasonable
L816[17:15:44] <shadekiller666>
williewillus, not with how we're using structures
L817[17:15:52] <williewillus> ?
L818[17:15:55] <williewillus> which
is?
L819[17:16:11] <gigaherz> wat
L820[17:16:21] <gigaherz> why would the
"get" method imply that you have to load from
disk?!
L821[17:16:23] <shadekiller666> all of our
"block that takes up multiple blocks" (ie. beds, chests)
go through this system
L822[17:16:54] <gigaherz> wait you are
worrying about the one single time it will be loaded?
L823[17:16:56] <williewillus> lol
L824[17:16:59] <shadekiller666> gigaherz,
because the manager needs to have a look-up map of
ResourceLocation->StructureTemplate
L825[17:17:19] <shadekiller666> so that
when something needs to happen with a structure, it actually knows
what template to use
L826[17:17:27] <williewillus> what part
exactly are you worried about underperforming?
L827[17:17:31] <gigaherz> yeah that should
be trivial
L828[17:17:32] <gigaherz> IMO
L829[17:17:40] <gigaherz> if loading the
structure fromdisk is a performance issue
L830[17:17:44] <gigaherz> your design may
be wrong
L831[17:17:53] <shadekiller666> well, i
was doing this loading from disk in preInit()
L832[17:18:14] <shadekiller666> but i now
have to do it in get() when getOrLoadData returns null and a new
instance has to be made
L833[17:18:36] <williewillus> yes but once
you call it once it's cached in memory right?
L834[17:18:46] <gigaherz> wait those
structures
L835[17:18:50] <shadekiller666> for that
instance of the StructureManager, yes
L836[17:18:53] <gigaherz> are something
stored in like, the config folder?
L837[17:18:57] <williewillus> then you
shouldn't be worried
L838[17:18:58] <gigaherz> or in the save
folder?
L839[17:19:02] <williewillus> memory is
fast compared to disk
L840[17:19:12] <gigaherz> because I'm
confused if you are talking about the "patterns"
only
L841[17:19:17] <williewillus> you
shouldn't really be worried at all unless it becomes an issue
(premature opt)
L842[17:19:19] <gigaherz> or the actual
structures placed into the world
L843[17:19:26] <shadekiller666> no, the
mod's assets directory contains a "structures" folder,
which contains 1 folder for each template
L844[17:19:35] <gigaherz> those can load
in preinit, then
L845[17:19:37] <gigaherz> ?
L846[17:19:40] <gigaherz> you don't need
the world for it
L847[17:19:41] <shadekiller666> each of
those folders contains at least 1 json and 1 png
L848[17:19:53] <gigaherz> just keep the
data elsewhere, separate from WorldSavedData instances
L849[17:20:34] <gigaherz> (could be a
static map inside StructureManager, it just doesn't need to be an
instance field)
L850[17:21:36] <shadekiller666> right,
derp
L851[17:30:32] ***
Clank is now known as Clank[Away]
L852[17:31:57]
⇨ Joins: Umbraco
(~Umbraco@113x37x12x233.ap113.ftth.ucom.ne.jp)
L853[17:32:33]
⇨ Joins: immibis
(~chatzilla@122-61-224-36.jetstream.xtra.co.nz)
L854[17:34:18]
⇨ Joins: GenuineSounds
(~Genuine@66-191-1-249.dhcp.knwc.wa.charter.com)
L855[17:35:08] ⇦
Quits: Genuine (~Genuine@104.156.228.160) (Ping timeout: 198
seconds)
L856[17:40:42]
⇨ Joins: MoxieGrrl
(~MoxieGrrl@173-23-172-139.client.mchsi.com)
L857[17:59:27]
⇨ Joins: AstralSorcerer
(~AstralSor@2601:981:c002:98c0::a)
L858[18:04:13]
⇨ Joins: PrinceCat
(~PrinceCat@58-7-228-28.dyn.iinet.net.au)
L859[18:06:15] ⇦
Quits: AstralSorcerer (~AstralSor@2601:981:c002:98c0::a) (Remote
host closed the connection)
L860[18:06:55]
⇨ Joins: AstralSorcerer
(~AstralSor@2601:981:c002:98c0::a)
L861[18:07:55] ⇦
Quits: AstralSorcerer (~AstralSor@2601:981:c002:98c0::a) (Remote
host closed the connection)
L862[18:08:19]
⇨ Joins: AstralSorcerer
(~AstralSor@2601:981:c002:98c0::a)
L863[18:12:02]
⇨ Joins: Shambling
(~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com)
L864[18:13:27] ⇦
Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 195
seconds)
L865[18:14:51] ⇦
Quits: ThePsionic (~ThePsioni@ip5457f909.direct-adsl.nl) (Quit:
Leaving)
L866[18:15:13]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L867[18:16:53] <shadekiller666> sweet, the
WorldSavedData seems to have worked, thanks
L868[18:17:07] <gigaherz> :)
L869[18:36:54] ⇦
Quits: Shambling
(~Shambling@24-181-186-74.dhcp.nwtn.ct.charter.com) (Quit:
Leaving)
L870[18:37:54] ⇦
Quits: gr8pefish
(~gr8pefish@24-121-184-14.flagcmtk01.res.dyn.suddenlink.net) (Quit:
I'm gone)
L871[18:44:23] ⇦
Quits: bilde2910 (bilde2910@51.174.170.178) (Ping timeout: 189
seconds)
L872[18:46:45]
⇨ Joins: bilde2910 (bilde2910@51.174.170.178)
L873[18:49:59] ***
Clank[Away] is now known as Clank
L874[18:54:12] ⇦
Quits: Upthorn
(~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net) (Ping
timeout: 384 seconds)
L875[18:54:53] ⇦
Quits: Jezza (~Jezza@92.206.161.17) (Ping timeout: 206
seconds)
L876[18:56:18]
⇨ Joins: CoderPuppy (~cpup@32.218.117.140)
L877[18:58:30]
⇨ Joins: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
L878[19:00:26] ⇦
Quits: cpup (~cpup@32.218.113.202) (Ping timeout: 384
seconds)
L880[19:01:58] <shadekiller666> the top
one
L881[19:02:08] <killjoy> That makes
2
L882[19:02:16] <killjoy> (2 people chose
that one)
L883[19:02:19] <killjoy> nobody chose the
bottom one
L884[19:02:29] <killjoy> I was told it
looked ugly, so I'm changing it
L885[19:02:44] ⇦
Quits: williewillus (~williewil@cpe-24-28-24-13.austin.res.rr.com)
(Ping timeout: 198 seconds)
L886[19:05:03] ⇦
Quits: Samario
(~Samario@cpc5-bigg3-2-0-cust219.9-2.cable.virginm.net) (Quit: You
think you are above consequences.)
L887[19:06:09] <shadekiller666> theres no
point for it to be yellow
L888[19:06:18] <shadekiller666> none of
the rest of the ui is yellow
L889[19:16:56]
⇨ Joins: williewillus
(~williewil@cpe-24-28-24-13.austin.res.rr.com)
L890[19:18:01] <tterrag> what is this
for?
L891[19:18:25] <killjoy> It's a simple
items mod.
L892[19:21:14] <killjoy> It's mainly been
for the server I play on
L893[19:22:32] <tterrag> soo...why not use
JEI?
L894[19:22:42] <killjoy> this doesn't use
forge.
L895[19:22:46] <tterrag> oh
L896[19:23:01] <killjoy> Had to fill the
gap that voxelget left
L897[19:25:07] <killjoy> I do encourage
people to use JEI if they do have forge installed, though.
L898[19:27:15] <mezz> you can use forge to
connect to vanilla servers though
L899[19:27:36] <mezz> seems like a lot of
work
L900[19:27:39] <killjoy> so?
L901[19:27:51] <tterrag> do you ping on
JEI?
L902[19:28:00] <killjoy> huh?\
L903[19:28:09] <mezz> no, I just read this
channel relatively often
L904[19:28:39] <mezz> I used to ping on it
before people actually started using it heh
L905[19:30:02] <killjoy> People act like
certain mods have monopolies
L906[19:31:40] ***
Clank is now known as Clank[Away]
L907[19:33:49] <mezz> not really, I'm just
curious why you would want to reinvent the wheel
L908[19:34:24] <killjoy> It wasn't _that_
hard
L909[19:34:32] <killjoy> It's a simple mod
afterall
L910[19:34:36] <mezz> mhm
L911[19:35:03] <killjoy> I do plan on
adding an nbt editor though
L912[19:35:57]
⇨ Joins: Guest2771 (~wolfmitch@149.56.182.12)
L913[19:35:58] <Guest2771> ed
L914[19:36:09] <killjoy> edd &
eddy?
L915[19:36:10] <Guest2771> aand
accidentally clicked a challel while typing
L916[19:36:12] <Guest2771> stupid
trackpad
L917[19:36:23] <mezz> at least it wasn't
your password
L918[19:36:33] <killjoy> last 2 chars of
it
L919[19:36:33] <Guest2771> ikr
L920[19:36:39] <Guest2771> no, i was
saying 'i tried'
L921[19:36:45] <killjoy> well, you
tried
L922[19:36:54] *
killjoy boos himself
L923[19:36:55] <Guest2771> i did,
L925[19:37:14] <Guest2771> ooo ihave a
message on reddit!
L926[19:37:17] ⇦
Quits: kashike (kashike@is.a.miserable.ninja) (Quit: WeeChat
1.7-dev)
L927[19:37:18] *
Guest2771 feels important now
L928[19:37:22] ⇦
Quits: sinkillerj (~sinkiller@nc-67-232-15-221.dhcp.embarqhsd.net)
(Quit: またね)
L929[19:37:23] ***
Guest2771 is now known as wolfmitchell
L930[19:37:24] <killjoy> I get those a
lot
L931[19:37:32] <killjoy> Today it was a
double post
L932[19:37:37] <wolfmitchell> aww it was
just the remind me bot
L933[19:38:14] <mezz> !remindme 200 hours
I'm proud of you son
L934[19:38:46] <mezz> good to pat yourself
on the back every now and then
L935[19:39:04] <wolfmitchell> lmao
L936[19:39:26] <killjoy> !remindme 100
hours Son, I am dissapoint
L937[19:39:28] <wolfmitchell> every 8 days
8 hours?
L938[19:39:28] <wolfmitchell> lmao
L939[19:39:38]
⇨ Joins: Doty1154
(~Doty1154@2601:648:8000:134f:5c74:272e:85cf:425a)
L940[19:39:38] <wolfmitchell> or in
killjoy's case, every 4 days 4 hours?
L941[19:40:00] <howtonotwin> $ yes
"I'm proud of you" & yes "I'm disappointed in
you" &
L942[19:40:14] <howtonotwin> mixed
messages forever at light speed
L943[19:41:15] <howtonotwin> hmm not that
mixed on my system...
L944[19:41:20] <howtonotwin> more mood
swings...
L945[19:43:44] ***
fry is now known as fry|sleep
L946[19:47:08] ⇦
Quits: c233 (~c233@164.40.206.76) (Ping timeout: 198
seconds)
L947[19:53:10] ⇦
Quits: RandomX45 (~random@2601:44:8802:2060:1431:2e5e:1bd7:fb7b)
(Quit: [Sein] Sein is just strong enough to throw it. [Prospero]
but now you've dented the poor companion cube, you
monster.)
L948[19:53:42] ⇦
Quits: IceDragon (~ThatGuy@69.160.115.240) (Ping timeout: 384
seconds)
L949[20:08:28]
⇨ Joins: kashike (kashike@is.a.miserable.ninja)
L950[20:21:05] ⇦
Quits: NineChickens (uid196646@id-196646.ealing.irccloud.com)
(Quit: Connection closed for inactivity)
L951[20:29:14]
⇨ Joins: RebelKeithy
(~RebelKeit@173-240-139-59.pool.dsl.nctc.com)
L952[20:34:23] ***
TTFT|Away is now known as TTFTCUTS
L953[20:35:08] ⇦
Quits: KklyAq (KklyAq@p30032-ipngnfx01osakakita.osaka.ocn.ne.jp)
(Ping timeout: 198 seconds)
L954[20:36:32]
⇨ Joins: KklyAq
(~KklyAq@p30032-ipngnfx01osakakita.osaka.ocn.ne.jp)
L955[20:49:32] ⇦
Quits: KGS (~KGS@h-155-4-129-249.na.cust.bahnhof.se) (Ping timeout:
198 seconds)
L956[20:56:09]
⇨ Joins: RandomX45
(~random@2601:44:8802:2060:4189:1285:80b1:37fa)
L958[21:04:03] ⇦
Quits: Girafi (Girafi@0x555178eb.adsl.cybercity.dk) (Read error:
Connection reset by peer)
L959[21:04:56]
⇨ Joins: Wastl2_
(~Wastl2@x4e34c332.dyn.telefonica.de)
L960[21:05:40] ⇦
Quits: Wastl2 (~Wastl2@x4e340c4c.dyn.telefonica.de) (Ping timeout:
384 seconds)
L961[21:06:35] ***
Kolatra is now known as Kolatra|away
L962[21:12:50] ⇦
Quits: edr (~edr@d-65-175-180-73.cpe.metrocast.net) (Quit:
Leaving)
L963[21:22:40] ⇦
Quits: howtonotwin
(~howtonotw@r75-110-22-15.gvllcmtc01.gnvlnc.ab.dh.suddenlink.net)
(Ping timeout: 384 seconds)
L964[21:23:47] ***
Mumfrey is now known as mumfrey
L965[21:27:56] ***
Kolatra|away is now known as Kolatra
L966[21:35:19]
⇨ Joins: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net)
L967[21:41:01] ***
GenuineSounds is now known as Genuine
L968[21:48:38]
⇨ Joins: LiftLeft
(~loser@im.from.the.gigamatrix.xyz)
L969[22:09:13]
⇨ Joins: coDE_RP
(~coDE_RP@47-32-3-205.dhcp.ftbg.wi.charter.com)
L970[22:09:19] <coDE_RP> hello
L971[22:09:31] ***
diesieben07 is now known as diesieben|away
L972[22:09:51] <coDE_RP> anyone?
L973[22:09:54] <killjoy> hello
L974[22:10:00] <coDE_RP> hi
L975[22:10:01] <williewillus> hi
L976[22:10:17] <coDE_RP> this is my first
time using IRC
L977[22:12:40] <coDE_RP> I am currently a
noob at making forge mods, I was wondering if anyone knows any good
guides on the basic API
L978[22:14:45] ⇦
Quits: Redfoxmoon (~Red@177.92-221-236.customer.lyse.net) (Read
error: Connection reset by peer)
L979[22:16:35] <killjoy> It's
simple.
L980[22:16:44] <killjoy> Annotate your
main class with @Mod
L981[22:16:59] <killjoy> lifecycle methods
on that mod get annotated with @EventHandler
L982[22:17:22] <killjoy> you can register
other events using MinecraftForge.EVENT_BUS.register()
L983[22:17:28] <williewillus> outside of
the lifecycle events there's not much of a "basic
API"
L984[22:17:36] <williewillus> it
immediately branches out depending on what you want to do
L985[22:17:40] <killjoy> everything else
is just minecraft
L986[22:17:46] <killjoy> which is
constantly changing
L987[22:17:54] <williewillus> it's easier
to help if it's a specific subsystem
L988[22:18:04] <killjoy> need help on
getting started?
L989[22:18:06] <coDE_RP> I know that but I
mean what all the methods do
L990[22:18:11] <williewillus> what
methods?
L991[22:19:06] <coDE_RP> like how do i
make keybinds or armor or weapons
L992[22:19:19]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L993[22:19:30] <williewillus> which
one]
L994[22:19:34] <williewillus> do you want
to do first? :P
L995[22:19:44] <coDE_RP> probably
weapons
L996[22:20:11] <killjoy> Do you understand
items yet?
L997[22:20:26] <coDE_RP> yes for the most
part
L998[22:20:38] <williewillus> what do you
want the weapon to do?
L999[22:21:39] <coDE_RP> I think I should
start with something like applying fire or potion effect
L1000[22:21:48] <coDE_RP> probably
fire
L1001[22:21:51] <killjoy> So a basic
sword?
L1002[22:22:02] <coDE_RP> basically
L1003[22:22:04] <williewillus> subclass
the vanilla sword
L1004[22:22:26] <williewillus> and look
around in the Item class for a method that looks like it does
things when you hit something
L1005[22:22:48] <williewillus> then
override it and have it do stuff (tm)
L1006[22:23:14] <coDE_RP> exactly where
do I find vanilla item classes?
L1007[22:23:21] <williewillus> in your
IDE
L1008[22:23:24] <killjoy> extend
Item
L1009[22:23:29] <killjoy> then just
organize imports
L1010[22:23:39] <williewillus> a standard
workspace should include all of the vanilla/forge code
L1011[22:23:40] <shadekiller666> 1.
override class 2. examine methods 3. override method 4. ???? 5.
profit!
L1012[22:23:57] <coDE_RP> ok
L1013[22:24:06] <coDE_RP> let me
try
L1014[22:24:26] <shadekiller666> i think
williewillus also forgot the parts about registering said custom
item
L1015[22:24:34]
⇨ Joins: Lathanael
(~Lathanael@p54960B73.dip0.t-ipconnect.de)
L1016[22:24:36] <shadekiller666> and the
whole thing with models and such
L1017[22:24:42] <williewillus> i mean you
left it out of the list too lol
L1018[22:24:50] <williewillus> let's get
it working before making it look nice
L1019[22:24:53] *
shadekiller666 wasn't involved with the list
L1020[22:24:59] <coDE_RP> yeah i know how
to register an item and block
L1021[22:25:00]
⇦ Quits: Lathanael|Away
(~Lathanael@p54960D19.dip0.t-ipconnect.de) (Ping timeout: 384
seconds)
L1022[22:25:27] <coDE_RP> and
crafting/smelting
L1023[22:25:48] <coDE_RP> and edit mob
drops, and thats about it
L1024[22:31:17] <williewillus> geez why
do piston movements take so much memory 0.o
L1025[22:32:20] ***
PrinceCat is now known as PrinceCat`Away
L1026[22:32:43] <coDE_RP> I wonder why
they called the shovel item ItemSpade
L1027[22:32:50] <williewillus> historic
reasons
L1028[22:33:03]
⇨ Joins: Upthorn
(~ogmar@108-85-88-44.lightspeed.frokca.sbcglobal.net)
L1029[22:33:04] <williewillus> iir
L1030[22:33:06] <williewillus> c
L1031[22:33:39]
⇨ Joins: Redfoxmoon
(~Red@177.92-221-236.customer.lyse.net)
L1032[22:35:13] ***
PrinceCat`Away is now known as PrinceCat
L1033[22:35:40] <killjoy> Names can
change, and they have
L1034[22:36:55] <williewillus> but not
for really good reason though
L1035[22:36:57] <coDE_RP> all I learned
from that is how to make an item get damaged when it attacks a
mob
L1036[22:36:58] <williewillus> *not
without
L1037[22:37:04] <williewillus> from
what
L1038[22:37:26] <coDE_RP> looking at
nitminecraft.item.ItemSword
L1039[22:37:35] <williewillus> which
method
L1040[22:37:57] <coDE_RP>
damageItem
L1041[22:38:02] <williewillus> wat
L1042[22:38:07] <williewillus> you want
to apply fire right
L1043[22:38:11]
⇦ Quits: iso2013
(~iso2013@c-67-176-10-45.hsd1.co.comcast.net) (Quit: Bye
:))
L1044[22:38:14] <coDE_RP> yes
L1045[22:38:22] <williewillus> so look
for the method that seems like it's called when you "hit
something" (hint hint)
L1046[22:38:35] <coDE_RP> hitEntity
L1047[22:38:46] <williewillus> okay then
override it and do what you want to do
L1048[22:39:14] <coDE_RP> so how would i
apply fire to the entity?
L1049[22:39:35] <williewillus> use your
IDE's autocomplete. Write "target." and your IDE lists
out every single thing you can do to an EntityLivingBase
L1050[22:39:37] <williewillus> look for
something fire related
L1051[22:40:14] <coDE_RP> ok, now i feel
sorry for people wh write in straight-p notepad
L1052[22:41:07] <williewillus> that can
happen after people get a feel for the codebase and API, but for
rapid learning auto-complete is indispensable
L1053[22:41:28] <williewillus> external
javadoc would also work but forge stopped providing those years
ago
L1054[22:42:15] <williewillus> oh and you
might want to call super in your subclass as well unless your sword
is undamageable :P
L1055[22:46:27]
⇨ Joins: BURN447
(webchat@71-212-0-171.tukw.qwest.net)
L1056[22:50:12]
⇦ Quits: BURN447 (webchat@71-212-0-171.tukw.qwest.net) (Ping
timeout: 195 seconds)
L1057[23:04:30] <RebelKeithy> is there a
way for my mod to tell what version of Minecraft it's being run
on?
L1058[23:04:53] <killjoy>
ForgeVersion
L1059[23:04:56] <killjoy> use that
class
L1060[23:05:17] <RebelKeithy> ah, that's
easy. Thanks
L1061[23:14:55]
⇦ Quits: McJty (~jorrit@94-224-154-146.access.telenet.be)
(Ping timeout: 206 seconds)
L1062[23:15:16]
⇨ Joins: McJty
(~jorrit@94-224-154-146.access.telenet.be)
L1063[23:15:20]
⇦ Quits: PrinceCat (~PrinceCat@58-7-228-28.dyn.iinet.net.au)
(Quit: Textual IRC Client: www.textualapp.com)
L1064[23:16:33] <coDE_RP> How do you make
something happen when a key is pressed?
L1065[23:18:16]
⇦ Parts: coDE_RP
(~coDE_RP@47-32-3-205.dhcp.ftbg.wi.charter.com)
(Leaving))
L1066[23:19:08] <ayyliens> keybinds and
the InputEvent.KeyInputEvent evnt
L1067[23:20:04] <williewillus> see class
KeyBinding
L1068[23:22:57]
⇦ Quits: KnightMiner
(~KnightMin@adsl-75-5-73-22.dsl.emhril.sbcglobal.net) (Quit:
Leaving)
L1069[23:31:17] <williewillus>
!latest
L1070[23:33:40] <Zidane> Anyone have any
experience adding a custom FolderResourcePack class to the
ResourceManagerRespository?
L1071[23:49:41] <killjoy> Why?
L1072[23:50:39]
⇦ Quits: Cooler (~CoolerExt@45.249.156.150) (Ping timeout:
189 seconds)
L1073[23:52:08] <Zidane> Fallback
location to load assets from should they not be in the jar
L1074[23:52:19] <killjoy> Why would they
not be there?
L1075[23:52:21] <Zidane> Since I roll out
content dynamically
L1076[23:52:43] <williewillus> killjoy:
for e.g. runtime generation of assets
L1077[23:53:21] <Zidane> ^ I've got a LOT
of assets...if I had to roll out a jar for every code change I
make, my users would be downloading 20-30mb jars semi
regularly.
L1078[23:53:26] <killjoy> could use a
fallback resource
L1079[23:53:36] <Zidane> Easier to just
introduce a way to load them outside the jar
L1080[23:53:45] <Zidane> and put them
there and roll out assets separately
L1081[23:56:00] ***
cpw is now known as cpw|out
L1082[23:56:31] <killjoy> I think I did
it a while ago when I needed to add a sourceset as a resource
pack
L1083[23:56:34] <killjoy> let me find
it
L1084[23:57:15] <Zidane> The one way I
see to do it is to access the defaultResourcePacks list and add it
to it
L1085[23:57:22] <Zidane> but that
involves reflection or ASM
L1086[23:57:24] <tterrag> you're shipping
20-30MB of resources?
L1087[23:57:24] <Zidane> Both nasty
L1088[23:57:29] <Zidane> Yes lol
L1089[23:57:30] <killjoy> Forge actually
has a method for that
L1090[23:57:42] <tterrag> you should try
compressing your images
L1091[23:57:48] <tterrag> chisel
currently totals a bit under 7MB
L1092[23:57:48] <Zidane> killjoy, I've
not found it but I've probably missed it
L1093[23:57:55] <tterrag> and that has
quite a few assets
L1094[23:57:56] <Zidane> tterrag, no
kidding, that is a WIP
L1095[23:58:05] <Zidane> I don't handle
that part
L1096[23:58:06] <tterrag> well, maybe do
that before you go worrying about some crazy resource system
L1097[23:58:38] <Zidane> tterrag, I don't
see why having another folder that provides assets be crazy but
okay lol
L1098[23:59:07] <tterrag> reducing the
ludicrous size of your jar should be step 1, imo
L1099[23:59:29] <Zidane> Again, I don't
handle that and its being gotten to
L1100[23:59:35] <Zidane> I handle code
only