Ender Client

Forum for alternative clients, mods & discussions on the same.
JesusTheAstronaut
Posts: 27
Joined: Fri Jan 20, 2012 9:08 am

Re: Ender Client

Post by JesusTheAstronaut »

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

...

Post by mvgulik »

...
Last edited by mvgulik on Wed Jul 17, 2024 7:22 pm, edited 1 time in total.
AlexNT
Posts: 115
Joined: Wed Jun 06, 2018 1:13 am

Re: Ender Client

Post by AlexNT »

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);
	    }
	}
    }

mvgulik
Posts: 4090
Joined: Fri May 21, 2010 2:29 am

...

Post by mvgulik »

...
Last edited by mvgulik on Wed Jul 17, 2024 7:19 pm, edited 1 time in total.
User avatar
Pommfritz
Posts: 360
Joined: Wed Sep 16, 2015 6:00 pm

Re: Ender Client

Post by Pommfritz »

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

Post by Pommfritz »

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
Lithis
Posts: 4
Joined: Sat Mar 26, 2011 1:23 pm

Re: Ender Client

Post by Lithis »

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.
User avatar
vatas
Posts: 5252
Joined: Fri Apr 05, 2013 8:34 am
Location: Suomi Finland Perkele

Re: Ender Client

Post by vatas »

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.)
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.)
mvgulik
Posts: 4090
Joined: Fri May 21, 2010 2:29 am

...

Post by mvgulik »

...
Last edited by mvgulik on Wed Jul 17, 2024 7:18 pm, edited 1 time in total.
User avatar
DreadKatak
Posts: 76
Joined: Mon Nov 26, 2018 3:10 am

Re: Ender Client

Post by DreadKatak »

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.

Return to “The Wizards' Tower”