Why doesn't my boyfriend go out of his way for me?

I love doing things to make my boyfriend happy. I cook, I clean, I randomly buy him things that I think he'd like, I got him an iPod touch for his birthday and I bring him food from my house or buy him food. I am far from being a gold digger but its always nice to have someone that you love, go out of his way to do nice things for you. My boyfriend never does anything cute for me unless I ask or give him obvious hints. Even then, he usually doesn't pick up on the hints or he calls me a gold digger for wanting starbursts from a gas station that's in walking distance and literally takes 1 second to drive. He doesn't like to take me out for lunch or dinner because he is "broke" and would rather eat at home but when I'm not with him he'll order food for himself and eat it before I come over. On the rare occasion that he does take me out to dinner, he always prides himself in his "good deed" and holds its over my head. for example: If I say something bitchy to him or anything that upsets him in general he'll say "I just bought you a nice dinner and this is how you treat me?". Usually, We split the tab or I pay. I don't think he has EVER randomly done something nice or sweet or bought me something cute just because he wanted to see me smile. Even thought he claims he is broke, he sells weed and makes a good profit. He always has enough money to buy more. I know he wants to be with me but why doesn't he pamper me or show me he loves me? He knows I feel this way but doesn't seem to take a hint. It would be nice to have a guys input on why he acts like this.
Why doesn't my boyfriend go out of his way for me?
Add Opinion