-
JesusTheAstronaut
- Posts: 27
- Joined: Fri Jan 20, 2012 9:08 am
Re: Ender Client
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.
-
mvgulik
- Posts: 4090
- Joined: Fri May 21, 2010 2:29 am
...
...
Last edited by mvgulik on Wed Jul 17, 2024 7:22 pm, edited 1 time in total.
Ignored(29): "Would you like to know more"
-
AlexNT
- Posts: 115
- Joined: Wed Jun 06, 2018 1:13 am
Re: Ender Client
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):

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):

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);
}
}
}
-
mvgulik
- Posts: 4090
- Joined: Fri May 21, 2010 2:29 am
...
...
Last edited by mvgulik on Wed Jul 17, 2024 7:19 pm, edited 1 time in total.
Ignored(29): "Would you like to know more"
-
Pommfritz
- Posts: 360
- Joined: Wed Sep 16, 2015 6:00 pm
Re: Ender Client
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)
-
Pommfritz
- Posts: 360
- Joined: Wed Sep 16, 2015 6:00 pm
Re: Ender Client
edit: started the launcher again and then the .bat now it seems to work
rip, since update
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
-
Lithis
- Posts: 4
- Joined: Sat Mar 26, 2011 1:23 pm
Re: Ender Client
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.
-
vatas
- Posts: 5252
- Joined: Fri Apr 05, 2013 8:34 am
- Location: Suomi Finland Perkele
Re: Ender Client
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.)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.
Haven and Hearth Wiki (Maintained by volunteers - test/verify when practical. Forum thread
Basic Claim Safety (And what you’re doing wrong
TL:;DR: Build a Palisade with only Visitor gates.)
Combat Guide (Overview, PVE, PVP) (Includes how to escape/minimize risk of getting killed.)
Basic Claim Safety (And what you’re doing wrong
TL:;DR: Build a Palisade with only Visitor gates.)
Combat Guide (Overview, PVE, PVP) (Includes how to escape/minimize risk of getting killed.)
-
mvgulik
- Posts: 4090
- Joined: Fri May 21, 2010 2:29 am
...
...
Last edited by mvgulik on Wed Jul 17, 2024 7:18 pm, edited 1 time in total.
Ignored(29): "Would you like to know more"
-
DreadKatak
- Posts: 76
- Joined: Mon Nov 26, 2018 3:10 am
Re: Ender Client
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.