Ender Client

Forum for alternative clients, mods & discussions on the same.

Re: Ender Client

Postby JesusTheAstronaut » Mon Jan 17, 2022 6:02 am

I am now seeing the satiation buffs when I look at a barrel of drink (wine, milk, juice, etc) and each food category shows its corrisponding satation %. Is this a new addition ? It certainly was not showing me this information a week ago and I haven't made any changes to the client.
JesusTheAstronaut
 
Posts: 27
Joined: Fri Jan 20, 2012 9:08 am

Re: Ender Client

Postby mvgulik » Mon Jan 17, 2022 6:15 am

JesusTheAstronaut wrote:I am now seeing the satiation buffs when I look at a barrel of drink (wine, milk, juice, etc) and each food category shows its corrisponding satation %. Is this a new addition ? It certainly was not showing me this information a week ago and I haven't made any changes to the client.

The change is related to a general game update => viewtopic.php?f=39&t=72200
mvgulik
 
Posts: 3740
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby AlexNT » Mon Jan 17, 2022 8:26 am

I have found a way to implement the "adjacent cave-in tiles" function. The gob encapsulating the dust particle effect (gfx/fx/cavewarn) has varying strength based on the amount of dust. Specifically, in the Gob.ols.spr.str field.

I lack the client knowledge to properly implement it into a public version, but here's a (somewhat crude) proof of concept in the OCache.add(Gob) method, in case you want to look into this. The relevant part is this (full code below):

if(ol.res!=null && ol.res.get().name.endsWith("cavewarn"))
...
try {
Field strField = ol.spr.getClass().getDeclaredField("str");
strField.setAccessible(true);
str = String.valueOf((int)strField.getFloat(ol.spr)/30);
} catch (Exception e) {e.printStackTrace();}


NOTE: this uses a custom-made MapView.Grid of flavobjs-like gobs in order to display the mining info directly above the tiles, but instead of MCache, it reads from a local sqlite db, which I populate from OCache.add(). invtts(cc) invalidates the grid cut to make sure it reloads from the DB. I can share the rest of the code if you're at all interested.

The end result looks like this ("Dust: X" tag overrides "Mined" tag when preparing the cut):

Image

Code: Select all
      public void add(Gob ob) {
   synchronized(ob) {
       Collection<ChangeCallback> cbs;
       synchronized(this) {
      cbs = new ArrayList<>(this.cbs);
      objs.put(ob.id, ob);

         ob.ols.forEach(ol->{
            if(ol.res!=null && ol.res.get().name.endsWith("mineout"))
            synchronized(TileFactDao.tileFactDao) {
               Coord mc = ob.rc.floor().div(MCache.tilesz2);
               Coord gc = mc.div(MCache.cmaps);
               Coord cc = mc.mod(MCache.cmaps).div(MCache.cutsz);
               TileFactDao.tileFactDao.put(new TileFact("MinedStatus", glob.map.getgrid(gc).id, mc.mod(MCache.cmaps), "Mined"));
               glob.map.getgrid(gc).invtts(cc);
            }
         });
         ob.ols.forEach(ol->{
            if(ol.res!=null && ol.res.get().name.endsWith("cavewarn"))
            synchronized(TileFactDao.tileFactDao) {
               Coord mc = ob.rc.floor().div(MCache.tilesz2);
               Coord gc = mc.div(MCache.cmaps);
               Coord cc = mc.mod(MCache.cmaps).div(MCache.cutsz);
               String str = "";
               try {
                  Field strField = ol.spr.getClass().getDeclaredField("str");
                  strField.setAccessible(true);
                  str = String.valueOf((int)strField.getFloat(ol.spr)/30);
               } catch (Exception e) {e.printStackTrace();}
               TileFactDao.tileFactDao.put(new TileFact("DustCount", glob.map.getgrid(gc).id, mc.mod(MCache.cmaps), "Dust: "+str));
               glob.map.getgrid(gc).invtts(cc);
            }
         });

       }
       for(ChangeCallback cb : cbs) {
      cb.added(ob);
       }
   }
    }

AlexNT
 
Posts: 68
Joined: Wed Jun 06, 2018 1:13 am

Re: Ender Client

Postby mvgulik » Wed Jan 19, 2022 7:38 am

Ender, do you have any idea what else might be involved in triggering the "java.util.ConcurrentModificationException" error (while chopping down a tree).

In my case the error seems kinda rare/random.
---
(Interesting/nice cave dust tracker post)
mvgulik
 
Posts: 3740
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby Pommfritz » Wed Jan 19, 2022 9:03 am

when clicking the button to clear my damage that I got from studying quicksilver globes

Code: Select all
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
   at java.base/java.util.LinkedHashMap.keysToArray(LinkedHashMap.java:545)
   at java.base/java.util.LinkedHashMap$LinkedKeySet.toArray(LinkedHashMap.java:577)
   at java.base/java.util.ArrayList.<init>(ArrayList.java:181)
   at haven.GobDamageInfo.clearAllDamage(GobDamageInfo.java:99)
   at haven.Action.run(Action.java:80)
   at haven.MenuGrid.lambda$makeLocal$0(MenuGrid.java:371)
   at haven.MenuGrid$CustomPagButton.use(MenuGrid.java:217)
   at haven.MenuGrid.use(MenuGrid.java:671)
   at haven.MenuGrid.mouseup(MenuGrid.java:698)
   at haven.UI.processMouseUp(UI.java:455)
   at haven.UI.mouseup(UI.java:449)
   at haven.UIPanel$Dispatcher.dispatch(UIPanel.java:72)
   at haven.JOGLPanel.run(JOGLPanel.java:533)
   at java.base/java.lang.Thread.run(Thread.java:832)
User avatar
Pommfritz
 
Posts: 360
Joined: Wed Sep 16, 2015 6:00 pm

Re: Ender Client

Postby Pommfritz » Sun Jan 23, 2022 9:54 pm

edit: started the launcher again and then the .bat now it seems to work

rip, since update
Code: Select all
java.lang.RuntimeException: Delayed error in resource gfx/hud/mmap/prov (v-1), from local res source (res)
   at haven.Resource$Pool$Queued.get(Resource.java:456)
   at haven.Resource$Pool$Queued.get(Resource.java:424)
   at haven.Loading.waitforint(Loading.java:119)
   at haven.Loading.waitfor(Loading.java:131)
   at haven.Resource$Pool.loadwait(Resource.java:731)
   at haven.Resource$Pool.loadwait(Resource.java:735)
   at haven.Resource.loadrimg(Resource.java:1760)
   at haven.Resource.loadtex(Resource.java:1772)
   at haven.ICheckBox.<init>(ICheckBox.java:70)
   at haven.MapWnd$3.<init>(MapWnd.java:124)
   at haven.MapWnd.<init>(MapWnd.java:124)
   at haven.MapWnd2.<init>(MapWnd2.java:19)
   at haven.GameUI.addchild(GameUI.java:1028)
   at haven.UI.newwidget(UI.java:256)
   at haven.RemoteUI.run(RemoteUI.java:65)
   at haven.MainFrame.uiloop(MainFrame.java:286)
   at haven.MainFrame.run(MainFrame.java:302)
   at haven.MainFrame.main2(MainFrame.java:450)
   at haven.MainFrame.lambda$main$0(MainFrame.java:486)
   at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: haven.Resource$LoadException: Load error in resource gfx/hud/mmap/prov(v-1), from local res source (res)
   at haven.Resource$Pool.handle(Resource.java:517)
   at haven.Resource$Pool.access$1200(Resource.java:401)
   at haven.Resource$Pool$Loader.run(Resource.java:653)
   ... 1 more
   Suppressed: haven.Resource$LoadException: Load error in resource gfx/hud/mmap/prov(v-1), from filesystem res source (C:\Users\Felix\Desktop\hh\res)
      ... 4 more
   Caused by: java.io.FileNotFoundException: gfx/hud/mmap/prov
      at haven.Resource$FileSource.get(Resource.java:269)
      at haven.Resource$Pool.handle(Resource.java:501)
      ... 3 more
   Caused by: java.nio.file.NoSuchFileException: C:\Users\Felix\Desktop\hh\res\gfx\hud\mmap\prov.res
      at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
      at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
      at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
      at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:235)
      at java.base/java.nio.file.Files.newByteChannel(Files.java:375)
      at java.base/java.nio.file.Files.newByteChannel(Files.java:426)
      at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
      at java.base/java.nio.file.Files.newInputStream(Files.java:160)
      at haven.Resource$FileSource.get(Resource.java:267)
      ... 4 more
Caused by: java.io.FileNotFoundException: Could not find resource locally: /res/gfx/hud/mmap/prov.res
   at haven.Resource$JarSource.get(Resource.java:289)
   at haven.Resource$Pool.handle(Resource.java:501)
   ... 3 more
User avatar
Pommfritz
 
Posts: 360
Joined: Wed Sep 16, 2015 6:00 pm

Re: Ender Client

Postby Lithis » Sun Jan 30, 2022 9:34 am

Is there a way to tidy up the ui? Like make chat smaller, move minimap and enlarge it etc? More like ard client, i play on a 15 inch screen and find it impossible to use this client the ui is so intrusive.
Lithis
 
Posts: 4
Joined: Sat Mar 26, 2011 1:23 pm

Re: Ender Client

Postby vatas » Sun Jan 30, 2022 10:30 am

Lithis wrote:Is there a way to tidy up the ui? Like make chat smaller, move minimap and enlarge it etc? More like ard client, i play on a 15 inch screen and find it impossible to use this client the ui is so intrusive.

Use Ctrl+A to open up a bigger map that has zoom and markers. (This is a default client feature and reason custom clients don't touch the minimap these days.)
User avatar
vatas
 
Posts: 3476
Joined: Fri Apr 05, 2013 8:34 am
Location: Suomi Finland Perkele

Re: Ender Client

Postby mvgulik » Tue Feb 08, 2022 7:02 am

@Ender: Any news on a potential Ender-client update in relation to the new "Icon settings" feature in the "Raft Notified" patch ?
mvgulik
 
Posts: 3740
Joined: Fri May 21, 2010 2:29 am

Re: Ender Client

Postby DreadKatak » Tue Feb 08, 2022 8:19 am

Glomming on, but any additional icon updates for dead small creatures? There's the greyed out icons for squirrels and rabbits, but I don't think there's any icon for dead moles or other small creatures, unless I am missing something. That feature makes it way easier to pick up critters that you may otherwise miss.
User avatar
DreadKatak
 
Posts: 50
Joined: Mon Nov 26, 2018 3:10 am

PreviousNext

Return to The Wizards' Tower

Who is online

Users browsing this forum: No registered users and 2 guests