Comments (6)
If BWEM-Community has it public, I vote to match. Not a strongly held opinion.
from jbwapi.
Feel free to make a PR! Otherwise I will look into it when I have time
from jbwapi.
I think we should either leave it private, or make onUnitDestroyed
not handle buildings. I'd vote for keeping it as is.
from jbwapi.
I agree with Dan. If it's public in BWAPI we should maintain that across to JBWAPI
Sorry if it was unclear, this is not from (J)BWAPI interface, but the BWEM interface.
The original porters of BWEM to Java decided to add a public method onUnitDestroyed
which does onStaticBuildingDestroyed
and onMineralDestroyed
at the same time (this method does not exist in the reference BWEM-community implementation), making it easier for users of (java) BWEM
For your JBWEB implementation, you probably want to just call onUnitDestroyed(unit)
, and it will handle it for you as you expect.
There seem to be 4 solutions:
-
- keeping everything like it is right now
-
- removing
onUnitDestroyed
and making the other 2 methods public so the interface is the same as BWEM-community.
- removing
-
- making all 3 of them public
-
- @Bytekeeper 's second suggestion
make onUnitDestroyed not handle buildings
- @Bytekeeper 's second suggestion
(1) is backwards compatible (maybe some people are already using onUnitDestroyed
) ?
(2) makes the interface the same as how BWEM-community currently is
(3) is also backward compatible, but maybe makes the interface confusing, a new user could be confused by what the difference is between onUnitDestroyed
an onMineralDestroyed
and maybe assume that BWEM also keeps track of workers or something?
(4) would make onStaticBuildingDestroyed
public and keep onUnitDestroyed
as a proxy for onMineralDestroyed
but potentially silently break some logic of existing bots using onUnitDestroyed
, so then I prefer (2), so at least the bot doesnt compile anymore.
I want to release a v2.0 with @dgant 's async support
and @Bytekeeper linux support
in the near future so I'm not afraid to break some small function calls, especially not if it's about improving/fixing the API .
Personally I favor towards (1) or (2), with a slight tilt towards (1) , as onUnitDestroyed
is a nice addition in my opinion, and can just be used for onStaticBuildingDestroyed
I think the problem for most of us is that we dont have a strong opinion on this 😄
@MrTate can you see if just using onUnitDestroyed
fulfills your purpose?
from jbwapi.
After going through the code, can you not use: BWMap::onUnitDestroyed
? This method will call the respective onStaticBuildingDestroyed
function:
JBWAPI/src/main/java/bwem/BWMap.java
Line 134 in e5521b2
Although the reference BWEM-community implementation has them public and doesnt have this onUnitDestroyed function.
https://github.com/N00byEdge/BWEM-community/blob/9a63141f301f7830e9e09a2bae95c304fcc03cc5/BWEM/include/map.h#L162
I can make both of them public too, but as onUnitDestroy
is already there and doing what it should do, maybe it's not needed. Any opinions @MrTate @dgant @Bytekeeper ?
Does the Constructor of StaticBuilding
need to be public? Currently onStaticBuildingDestroyed
takes a Unit
and searches for the corresponding static building internally. If you could share how you'd like to use these changes, Ill make them public, but until then I think it's better to keep them like this.
from jbwapi.
I agree with Dan. If it's public in BWAPI we should maintain that across to JBWAPI
from jbwapi.
Related Issues (20)
- BWEM IllegalStateException on game start HOT 5
- Renders wrong colors HOT 2
- Game::drawTextScreen(): StringIndexOutOfBoundsException HOT 5
- Crashes in init on playing a replay HOT 1
- Unique identifier for units HOT 5
- Training a unit when the queue is full throws Index out of Bounds HOT 5
- [Java9+] sun.nio.ch not visible HOT 2
- (Probably) Leaking memory in WrappedBuffer::Memory allocation HOT 1
- Color should be a flyweight object HOT 1
- Unit.getInterceptors (and maybe getLarva) runs slowly HOT 3
- Game can't issue grouped commands
- Give client bots a handler for pipe disconnection HOT 1
- Test all major platforms
- CI Improvements
- twice Comman Issue Unit.Train in command center HOT 6
- Documentation for drawTextMap lacking in regards to adding color
- Investigate BWEM issue with "New Popular Fastest Map"
- Update badges in README.md
- canBuildHere mineral vs depot check is not correct
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jbwapi.