« first day (301 days earlier)      last day (3262 days later) » 

12:00 AM
I think we might be able to get away with #250 fix only in JavaFX for now 0.6, and then work on the libGDX in 0.7?
 
making pretty GUIs isn't my biggest strength, as I'm sure you're all aware of :)
 
RELOAD!
 
@Phrancis yes, I was also considering that
 
[Cardshifter/Cardshifter] 34 commits. 11 opened issues. 11 closed issues. 27 issue comments.
3
 
WHOA
 
12:00 AM
[retailcoder/Rubberduck] 20 commits. 1 opened issue. 2 closed issues. 2 issue comments.
[Vogel612/JavaBot] 1 commit.
[Zomis/Duga] 1 closed issue.
[Zomis/Duga] 6 commits.
 
12:13 AM
> I say we should fix the JavaFX version for 0.6, and work on the libGDX version for 0.7. Anyone opposed?
 
12:37 AM
@SimonAndréForsberg #1 is not something that's lasting, I don't expect to maintain it forever.... but, [badge:legendary]... that's golden ... ;-)
I need to make time for answers.... unless I answer, I won't score much
 
@rolfl How many days do you have left to that badge now?
 
12:49 AM
[Cardshifter/Cardshifter] Zomis pushed commit b13c0aca to cleanup: minor import cleanup
[Cardshifter/Cardshifter] Zomis pushed commit c3eb713c to cleanup: removed old Lua modding code
 
too bad that @Duga's daily stats doesn't track number of additions or deletions (yet)
> Showing 25 changed files with 23 additions and 1,308 deletions.
 
@SimonAndréForsberg 5
I have been distracted though... something about homework and workwork
Today I worked, and also bought and planted 3 trees... and
 
TTGTB
will likely do a lot more cleaning up tomorrow
 
1:06 AM
Night :)
 
What’s Up Duck? https://christopherjmcclellan.wordpress.com/2015/05/29/whats-up-duck
Always stuck somewhere in my head http://www.commitstrip.com/2015/05/29/always-stuck-somewhere-in-my-head/ http://t.co/2F7CT2qtM5
 
1:49 AM
Signing off for a while
 
 
4 hours later…
6:09 AM
What happened to "release early, release often"? https://rubberduckvba.wordpress.com/2015/05/30/what-happened-to-release-early-release-often
 
 
3 hours later…
9:15 AM
hey
@bazola Eh, that first if condition return true else return false is a bit pointless ;)
 
9:41 AM
hey @skiwi
@skiwi Would you be very sad if I removed quite a lot of the code you created for Cardshifter? Some XML card loading, and mod loading code and such? My thinking is that a) The development on them has stalled b) They're not being used and unlikely to be used in the future now that Groovy is here c) If anyone would like to continue on them, they will still remain in the git history (of course) so it would be easy to use it again.
 
10:28 AM
> A while ago #172 was implemented. Before releasing 0.6, we need to make sure that those decks are in the correct location when building the project.
[Cardshifter/Cardshifter] Zomis pushed commit 15262b81 to cleanup: removed JS modding support
[Cardshifter/Cardshifter] build #1048 for commit 15262b81 on branch cleanup passed
 
11:06 AM
@skiwi disappeared?
 
[Cardshifter/Cardshifter] Zomis pushed commit c5e001c0 to cleanup: removed unused fights code
[Cardshifter/Cardshifter] build #1049 for commit c5e001c0 on branch cleanup passed
 
11:29 AM
[Cardshifter/Cardshifter] Zomis pushed commit 82096e54 to cleanup: cleaned up old unused JavaFX client-sided code and FXML files
[Cardshifter/Cardshifter] build #1050 for commit 82096e54 on branch cleanup passed
> Related: #76
 
@SimonAndréForsberg I could do JavaFX work to make it resizable etc. (It's definitely possible), but not available for that righ tnow and we probably don't even want to do that
@SimonAndréForsberg For a while... was only briefly here in the morning ;)
 
11:45 AM
@skiwi okay, totally understandable. I think JavaFX is quite low priority overall. We'd need to fix up the LibGDX GUI a lot more instead.
 
#IHaveSoManyDamnThignsToDoAndEvenMoreIdeas!
 
@skiwi please share your thoughts on this:
2 hours ago, by Simon André Forsberg
@skiwi Would you be very sad if I removed quite a lot of the code you created for Cardshifter? Some XML card loading, and mod loading code and such? My thinking is that a) The development on them has stalled b) They're not being used and unlikely to be used in the future now that Groovy is here c) If anyone would like to continue on them, they will still remain in the git history (of course) so it would be easy to use it again.
 
@SimonAndréForsberg My code might be sad... but this is exact what Agile development is, isn't it?
The mod loader should stay though I believe? Not sure why it is listed there
And what was XML cardloading again?
 
Ah... there's been quite some work in that indeed
But well, XML is inferior to Groovy
My idea was to support different formats, like XML/JSON/Groovy, but supporting XML with spells, etc. ain't easy or pretty
As a side note: For our project we currently have a custom format in XML, in which code blocks (custom text) need to be put, so it has to be inside <[!CDATA[ ]]> tags
It's ugly as hell
 
11:54 AM
@skiwi The Groovy Modloader doesn't use your ModLoader interface. There is no such thing as 'unloading' a Groovy mod for example.
 
@SimonAndréForsberg I'd personally like it if it could use that ModLoader interface
Need to go afk again..
 
@skiwi I'm not sure that it would be useful to do that. What useful functionality is it that the ModLoader interface provides, when it is possible to use the ECSMod interface directly?
 
@SimonAndréForsberg I thought we used that to load different mods from the filesystem
 
12:14 PM
@skiwi we do, for external Java-mods (as if anyone is gonna make that again!), and for Lua mods (which were never really implemented). For JS-mods (which are no longer supported) and for Groovy mods, the DirectoryModLoader is not used.
 
12:27 PM
> Considering that Java-based mods aren't used anymore, I think it is quite important to implement Groovy test support as soon as possible, to make sure things does not break. Changed milestone for this to 0.6
> I'm considering starting this change a bit sooner than 0.8, considering #207 and #200 . I think a lot of code could get cleaned up if this was starting to get implemented quite soon.
> Are there any objections about migrating the core code to Groovy? (Please? Anyone?)
> Related #250
 
12:45 PM
Monking
 
hey @Phrancis
 
@simon No objection on 242
 
@Phrancis I want an objection on it. There must be some down-side with Groovy!
 
If there was one, I would assume you would have found it by now!
 
1:03 PM
does groovy have any dependencies?
 
I think the most negative thing about moving to Groovy is that we get even further away from possibly supporting local games on Mobile Devices directly (without having them connect to a server), but we are already quite far away from that
 
[Cardshifter/Cardshifter] Zomis pushed commit 58d88cf5 to cleanup: removed XML card loader
[Cardshifter/Cardshifter] Zomis pushed commit 62082473 to cleanup: made CardLoaderHelper public, as the method it provides seems very useful to me
[Cardshifter/Cardshifter] Zomis pushed commit 29a677bd to cleanup: removed DirectoryModLoader and external JavaMod loader
[Cardshifter/Cardshifter] build #1051 for commit 29a677bd on branch cleanup passed
 
@SimonAndréForsberg How are they then loaded? How can one store two different Groovy mods on the server, and then choose which one to load?
@SimonAndréForsberg I think we should drop that for short-term, maybe add it later
I also think making a browser client (which can also work on mobiles!) using React is still an interesting option
 
1:24 PM
@skiwi thats what I get for copying code directly from SO comments ;)
@SimonAndréForsberg because the dependencies are not available on mobile?
 
@bazola Try to stay sane :)
 
@skiwi The ModCollection class contains a Map<String, Supplier<ECSMod>>, on server startup it scans a directory for what files/directories (mods) are available, and when you invite someone it uses the supplier associated with the mod-name and creates a game from that.
@bazola yeah, I don't think it is possible to get Groovy going on mobile. It's definitely not possible on HTML5, that's for sure.
 
@SimonAndréForsberg I'm probably confused, but I thought we had a different interface for that
I'm out of the loop for a long while though...
 
@skiwi we used to have Map<String, ECSMod> directly, but I realized that it's much better to create a new instance for each game, that way the ECSMod is not a singleton, and can store state better. Your DirectoryModLoader provided some functionality for scanning a directory, but when I made Groovy support, I did the quick way and just scanned using File.listFiles() directly in the ModCollection class
 
@SimonAndréForsberg well i guess it doesn't matter so much for this project (since we are not really planning to sell it i suppose) but it could be bad if we were going to try to sell cardshifter on the app or play store, and then later we decided to shut the servers down, and the game would then be unplayable since there would be no single player
 
1:34 PM
@bazola Correct, but single player has never been supported on mobile platforms. We used Java 8 on the core right from the start (except for the short period when we used Lua...)
 
i have been meaning to look at the code where you made the server code work for single player to see how exactly you did it
 
extracting an interface :) similar to how I approached the socket-problem.
Ideally, it would be nice to support single player on mobile platforms, but hopefully by the time we're ready on that part, mobile platforms supports groovy :P
 
@SimonAndréForsberg I might be remembering something now
We're going to need a fully defined API for our game pretty much if we want to create apps/websites later on
 
what kind of API?
 
I meant REST API there, but
We should be using WebSockets, not REST for this obviously
 
1:38 PM
what should the API be used for? You mean for playing the game, or for something else?
 
Like clicking on a button currently sends an event, a message sent to the server over WebSockets should also send that event
For playing, yes
 
okay
well, we do support websockets already
I think we could easily support JSON message over websockets
 
For what do we use Websockets then? I've heard some talks about it in the HTML client I believe
HTML GWT*
 
correct. That's exactly where we use Websockets
 
ok, that makes sense, yes
btw, Python is interesting at times
We have this method around:
@staticmethod
def get_parentless_containers() -> QuerySet:
    """
    Returns all containers that do not have parents.
    These are the top-level containers, typically representing courses.
    """
    return Container.objects.filter(parents=None)
A QuerySet is a database result set, that is still filterable, etc. and will only be executed during evaluation
So when importing a zip we can still do the following
    @staticmethod
    def import_course_zip(file):
        course = ContentService.read_course_zip(file)

        if ContainerService.get_parentless_containers().filter(name=course["info"]["name"]):
            # update existing course
            pass
        else:
            # add new course
            pass
 
1:46 PM
for a bit i was really interested in learning python, but the more i see the way the code is structured, the more i don't like it
its just hard to read imo
 
I think it's very easy to read most of the times
But I just hold a big grudge against their standard library
In that sense Groovy is quite golden
it just used the JDK library :)
It does also have its own or sort of I believe? @SimonAndréForsberg
 
@skiwi It's own standard library? Absolutely.
 
@skiwi maybe one method is easy to read, but when you have a bunch of classes it just looks weird to me
 
Brief opinion wanted...
class ContentService:
    @staticmethod
    def import_course_zip(file):
        course = ContentService.read_course_zip(file)

        if ContainerService.get_parentless_containers().filter(name=course["info"]["name"]):
            ContentService.__update_existing_course(course)
        else:
            ContentService.__create_new_course(course)
            pass

    @staticmethod
    def __update_existing_course(course: dict):
        pass

    @staticmethod
    def __create_new_course(course: dict):
Does this make sense?
The double underscore is for private methods... Yes... Really...
Python's argument is that because in Java (and other languages) you can use reflection to make private methods accessible it's better to not have a private/protected/package-private/public modifier at all
Thinking about that... Isn't that point totally invalid if you are using a Security Manager in Java and disabling reflection?
 
@skiwi what is 'pass' ?
 
2:00 PM
@SimonAndréForsberg it's a no-op statement
How else are you going to close that non-existent opening bracket... Yay for Python
2
 
2:40 PM
[Cardshifter/Cardshifter] Zomis pushed commit 20e05b17 to cleanup: removed SimpleCardLoader and CyborgChronicles Java mod + test, removed 'default mod' String constant
 
> Showing 21 changed files with 62 additions and 1,341 deletions.
 
[Cardshifter/Cardshifter] build #1052 for commit 20e05b17 on branch cleanup passed
 
[Cardshifter/Cardshifter-mod-examples] Zomis deleted repository
Today's commits so far:
Showing  1 changed file  with 0 additions and 2 deletions.
Showing  25 changed files  with 23 additions and 1,308 deletions.
Showing  12 changed files  with 0 additions and 1,552 deletions.
Showing  2 changed files  with 0 additions and 48 deletions.
Showing  9 changed files  with 0 additions and 1,290 deletions.
Showing  18 changed files  with 0 additions and 851 deletions.
Showing  2 changed files  with 8 additions and 15 deletions.
Showing  17 changed files  with 12 additions and 1,225 deletions.
 
3:00 PM
Bye JavaScript!
2
Wow @simon. Shedding a lot of extra weight I see!
 
3:28 PM
 
@Duga Who?
@Phrancis yeah, it's amazing how much code there really is that is unused
 
4:29 PM
how do you all do profiling for java
 
[Cardshifter/Cardshifter] Zomis pushed commit e353b651 to cleanup: removed some unused maven dependencies
[Cardshifter/Cardshifter] Zomis pushed commit 89dc1031 to cleanup: removed CW2 game and SimpleGame
[Cardshifter/Cardshifter] Zomis pushed commit b465f513 to cleanup: removed some more unused code
[Cardshifter/Cardshifter] build #1053 for commit b465f513 on branch cleanup passed
 
5:15 PM
[Cardshifter/Cardshifter] Zomis pushed commit c9c3dc7d to cleanup: cleaned up the Effects class
 
@Duga I assume that's related to this:
in The 2nd Monitor, 1 min ago, by Simon André Forsberg
@QPaysTaxes Have you seen the syntax we're now using for Cardshifter? It's kinda neat. For example: https://github.com/Cardshifter/Cardshifter/blob/groovy/extra-resources/groovy/ga‌​me1/bios.groovy#L31
 
@SimonAndréForsberg For a moment I thought we made a BIOS in Cardshifter
This is an older, but still very impressive video ^^
 
> Decided to not remove the cardshifter-console project, it might still be useful... or something.

Anyway, I consider this issue finished for now, although it's probably just a matter of time before we need to clean up some more.
[Cardshifter/Cardshifter] build #1054 for commit c9c3dc7d on branch cleanup passed
 
lol, there's some great Hearthstone bugs
 
5:46 PM
well i managed to set everything up with Actors as @Vogel612 suggested, but I don't know if i can solve the resulting bugs. The touching does work on the whole sprite now, but also the alpha channels. and now when i try to start panning when the mouse is over an actor, it won't pan
in case you are interested though @SimonAndréForsberg here is how i did it (pretty simple)
private void addActorsToScene() {
    for (int i = this.worldTiles.size() - 1; i >= 0; i--) {
        List<IsoTile> row = this.worldTiles.get(i);
        for (int j = row.size() - 1; j >= 0; j--) {
            IsoTile tile = row.get(j);

            IsoPoint point = new IsoPoint((int)(i * this.defaultHeight * gapReducer / scaleReducer),
                                          (int)(j * this.defaultHeight * gapReducer / scaleReducer));
            IsoPoint convertedPoint = IsoHelper.twoDToIso(point);
public class IsoTileImage extends Image {

    public IsoTileImage(Texture texture, IsoPoint position, float scale) {
        super(texture);
        this.setPosition(position.x, position.y);
        this.setScale(scale);
        this.addTouchListener();
    }

    private void addTouchListener() {
        this.addListener(new ClickListener() {
            @Override
            public void clicked(InputEvent event, float x, float y) {
                IsoTileImage.this.wasTouched();
            }
 
6:13 PM
@bazola I think it matters which order you add the InputListeners in to the InputMultiplexer
The listener for the camera panner and pinch zoomer should be added before the stage.
And I'm learning how to dynamically call JUnit tests. Quite neat once you figured out what method to override...
 
@SimonAndréForsberg ah, that must be it
 
that being said, is the actors able to properly define the touch area? I mean... if there's a transparent part of an image, it's really impossible to click there?
 
@Phrancis document new effects, issue 232, 228, 237, 246 and 213. @Simon Review bazola's code
 
@SimonAndréForsberg well, to make an actor out of an image you give a texture to an ImageObject, so i think it defines its borders as the whole image
the problem is that it Is possible to click on the transparent part of the image
 
yeah, that was what I was afraid of...
 
6:21 PM
i think that this is a possible workaround, but that is some serious calculations to have to run
1
A: How to detect a touch on transparent area of an image in a (libgdx) stage?

P.T.I don't think the libGDX Stage code has any specific support for setting a different bounding box/bounding region for an Actor. But, there are some other things you can do to work around this. First, in the ClickListener you can throw away touches if they're "invalid". For example, if you have...

 
I wonder if the actors uses rectangles as their touch area, I suspect that they do
 
i believe so
i think libGDX uses its Rectangle class for quite a few things
 
@bazola what do you gain then by having the actors? Won't it be the same kind of calculations you would have to do without the actors?
 
yeah
i implemented it to see if i could do it, and how hard it would be, but i already switched it off for now :)
 
So back to square one :)
 
6:24 PM
well i have a workable solution
 
square two then
 
by shrinking the rectangle a certain amount, it fits inside of the non transparent part of the sprite
feels mostly natural but you will still select the tile behind a sprite that is blocking it visually
and of course if you tap the outer edges of the isometric tile it will not register anything
i think the actor approach would work great for a directly overhead 2d game though
 
7:11 PM
yeah, I think I'm using the actor approach in my LibGDX game that's on the market
and of course, Cardshifter uses it
 
7:32 PM
[Cardshifter/Cardshifter] Zomis pushed commit 139110f4 to groovy-test: added ECSModTest and GroovyModInterface
[Cardshifter/Cardshifter] Zomis pushed commit a03e6240 to groovy-test: added GroovyTest, TestDelegate, and empty tests for the current mods
@SimonAndr, your build reported bad status: Failed!
[Cardshifter/Cardshifter] Zomis pushed commit 2318d58b to groovy-test: changed working directory of cardshifter-core tests, and cleaned up old test run configuration
 
8:41 PM
[Cardshifter/Cardshifter] Zomis pushed commit 0734ea70 to groovy-test: refactored groovy mod test a bit, returns a null list instead of a list with a single null name if test file was not found
[Cardshifter/Cardshifter] Zomis pushed commit 188d2e90 to groovy-test: Groovy scripts are now parsed on declareConfiguration, not before
 
@Duga Why do I suspect a @rolfl to have pinned that?
3
 
[Cardshifter/Cardshifter] Zomis pushed commit 9b69b750 to groovy-test: DIRTY HACK. Changed Thread sleep periods to match that Groovy scripts now are executed in declareConfiguration
 
@Duga I am SO not proud of that commit!
 
shhhhh
 
> Related to #101, there are some delays in ServerConnectionTest when starting a game, this should be avoided somehow. Await a PlayerConfigMessage perhaps? (if there is one.... not all games has that)
> See commit 9b69b7508defdcfa951e6c9d78bac919174036b9 for why this is a quite important fix.
 
8:46 PM
ugh... just wanted to find and fix the tests for now, now back to implementing new things.
 
3
 
I can pin things too! ;-)
 
9:43 PM
"Stage Complete"
 
 
1 hour later…
10:47 PM
[Cardshifter/Cardshifter] Zomis pushed commit 6e6ce574 to groovy-test: added TestCaseDelegate to test Groovy mods, addressing #207
 
phew, that commit took a while
 
@skiwi ^^ cool, huh?
 
11:12 PM
@Simon Looking very cool!
 
11:45 PM
200_success vs. rolfl: 51 diff. Year: -667. Quarter: -510. Month: -131. Week: +345. Day: +24.
Simon André Forsberg vs. Mat's Mug: 350 diff. Year: -591. Quarter: -1341. Month: -1035. Week: -550. Day: -20.
janos vs. Loki Astari: 6846 diff. Year: +8218. Quarter: +2552. Month: +2638. Week: +705. Day: +90.
Loki Astari vs. Simon André Forsberg: 4322 diff. Year: -1429. Quarter: -130. Month: +253. Week: +422. Day: +93.
 

« first day (301 days earlier)      last day (3262 days later) »